利用SQL语句创建数据库
Posted 有大病么你说
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用SQL语句创建数据库相关的知识,希望对你有一定的参考价值。
SQL语言是集DDL、DML和DCL于一体的数据库语言
SQL语言主要由以下9个单词引导的操作语句来构成,但每一种语句都能表达复杂的操作请求
- DDL语句引导词:Create(建立),Alter(修改),Drop(撤销)
模式的定义和删除,包括定义Database, Table,View,Index,完整性约束条件等,也包括定义对象(RowType行对象,Type列对象)
- DML语句引导词:Insert,Delete,Update,Select
各种方式的更新与检索操作,如直接输入记录,从其他Table(由SubQuery建立)输入
各种复杂条件的检索,如直接查找,模糊查找,分组查找,嵌套查找等
各种聚集操作,求平均、求和、……等,分组聚集,分组过滤等
- DCL语句引导词:Grant,Revoke
安全性控制:授权和撤销授权
建立数据库
包括两件事:定义数据库和表(DDL),向表中添加元组(DML)
DDL:
- 创建数据库(DB)
create database 数据库名;
- 创建DB中的Table(定义关系模式)
create table 表名(列名 数据类型 【Primary key| Unique】【Not null】
【,列名 数据类型 【Not null】,...】);
举例:定义学生表
Create Table Student(S# char(8) not null, Sname char(10), Ssex char(2), Sage integer, D# char(2), Sclass char(6)); // S#表示id
"【】"表示其括起的内容可以省略,"|"表示其隔开的两项可取其一
Primary key:主键约束。每个表只能创建一个主键约束。
Unique:唯一性约束(即候选键),可以有多个唯一性约束。
Not null:非空约束。选择Not null表明该列不允许有空值出现。
语法中的数据类型在SQL标准中有定义。
在SQL-92标准中定义的数据类型
- char(n): 固定长度的字符串
- varchar(n): 可变长度字符串
- int: 整数 //有时不同系统也写作integer
- numeric(p, q): 固定精度数字,小数点左边p位,右边p-q位
- real: 浮点精度数字 //有时不同系统也写作float(n),小数点后保留n位
- date: 日期(如2021-09-12)
- time: 时间(如15:25:00)
- ...
现行商用DBMS的数据类型有时和上面有些差异,请注意;和高级语言的数据类型总体上是一致的,但也有些差异。
- 定义Table及其各个属性的约束条件(完整性约束)
- 定义View(定义外模式及E-C映像)
- 定义Index、Tablespace……等(定义物理存储参数)
- 上述各种定义的撤销与修正
DDL通常由DBA来使用,也有DBA授权后由应用程序员来使用
包括两件事:定义数据库和表(DDL),向表中添加元组(DML)
DML:
- 向Table中追加新的元组:Insert
- 修改Table中某些元组的某些属性的值:Update
- 删除Table中的某些元组:Delete
- 对Table中的数据进行各种条件的检索:Select
DML通常由用户或应用程序员使用,访问经授权的数据库
向表中追加元组
insert into 表名【(列名)【,列名】…】
values(值【,值】,…);
示例:追加学生表中的元组
Insert Into Student
Values(‘08042202’,‘张三’,‘男’,20,‘03’,‘080422’);
Insert Into Student(S#,Sname,Ssex,Sage,D#,Sclass)
Values(‘08042202’,‘张三’,‘男’,20,‘03’,‘080422’);
values后面值的排列,须与into子句后面的列名排列一致
若表名后的所有列名省略,则values后的值的排列,须与该表存储中的列名排列一致
在cmd命令中利用SQL语句创建删除修改和查看数据表
【技术导图】
1、连接Mysql服务:mysql -u root -p;
2、使用数据库:use teacherdb;
3、创建student表(无约束条件):create table student()
4、删除student表:drop table student
5、查看当前数据库下所有的数据表:show tables;(用命令可以做的事情,在Navicat可视化工具中也可以)
6、查看数据表的结构:desc table;
7、修改数据表结构
①alter table 表名 add 列名 类型(长度) 约束; 作用:添加列.
例如:为student 表添加一个新的字段为 分类描述 varchar(30)
ALTER TABLE student ADD sdesc VARCHAR(30);
②alter table 表名 modify 列名 类型(长度) 约束; 作用:修改列的类型长度及约束.
例如:为student 表的名称字段进行修改,类型varchar(70) 添加约束 null
ALTER TABLE student MODIFY naome VARCHAR(70) NULL;
③alter table 表名 change 旧列名 新列名 类型(长度) 约束; 作用:修改列名.
例如:为student表名称字段进行更换 更换为 soname varchar(50)
ALTER TABLE student CHANGE name soname VARCHAR(50);
④alter table 表名 drop 列名; 作用:修改表删除列.
例如:删除表中name这列
ALTER TABLE Student DROP naon;
⑤rename table 表名 to 新表名; 作用:修改表名
例如:为表student 改名成 student
RENAME TABLE student TO studdwd;
扩展: 创建student表(有约束条件),这里我们在Navicat中的查询中利用SQL展示。
同样的,上述操作也可以直接用Navicat可视化界面进行操作。
参考:在Navicat工具中如何利用SQL语句和可视化界面这两种方法来创建数据表
以上是关于利用SQL语句创建数据库的主要内容,如果未能解决你的问题,请参考以下文章