SQL语言--- DDL
【摘要】 SQL语言DDL——(数据定义语言)是用来定义数据结构,完成数据库对象的创建(CREATE)、修改(ALTER)、删除(DROP)数据库对象包括:数据库实例、数据表 、视图、索引、约束、存储过程创建数据库语法:CREATE DATABASE 数据库名称查看已有的数据库:SHOW DATABASES使用已创建的数据库:USE 数据库名称创建数据库时,同时指定字符集、校对集:CREATE DAT...
SQL语言
DDL——(数据定义语言)是用来定义数据结构,完成数据库对象的创建(CREATE)、修改(ALTER)、删除(DROP)
数据库对象包括:数据库实例、数据表 、视图、索引、约束、存储过程
创建数据库
语法:CREATE DATABASE 数据库名称
查看已有的数据库:SHOW DATABASES
使用已创建的数据库:USE 数据库名称
创建数据库时,同时指定字符集、校对集:CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 字符集 COLLATE 校对集
实例: create database shujvku default character set utf8 collate utf8_general_ci
查看MySQL支持的字符集命令:SHOW CHARACTER SET
查看MySQL字符集支持的校对集命令:SHOW COLLATION
创建数据表
语法:CREATE TABLE 表名(属性名称 数据类型[约束],……)
查看已有的数据表命令:SHOW TABLES(ORACLE中,SELECT * FROM DBA_TABLES)
查看已创建的数据表属性命令:DESC 表名
MySQL数据库中创建数据表的同时,也可以指定表类型和字符集
语法:CREATE TABLE 表名(……)ENGINE=表类型 DEFAULT CHARSET=字符集
表类型:在MySQL数据库中常用的表类型有2个:InnoDB、MyISAM,默认情况下创建的表类型是InnoDB
MySQL数据库支持的数据类型:整型、浮点型、字符串、日期和时间
整形常用 int
浮点型常用 float(m,d)
字符串常用 varchar(n) 输入值时需要加引号
日期常用 date
时间常用 time
日期时间常用 datetime
数据表约束主要有:
1、主键约束(PRIMARY KEY),自动创建索,引义为主键的属性不允许为空,定义为主键的属性不允许输入重复值,一个表只能有一个主键
通过数据表中的一个或多个属性能够标识表中的唯一一行记录,这一个或多个属性称为该表的主键。
2、外键约束(FOREIGN KEY)
建立和强调两个表之间的关联,确保数据的完整性和一致性
例如:A表中的属性是另外一个B表中能够唯一确定一行记录的键(主键),这个属性就称为A表的外键,其中B表被称为主表或外表,A表称为从表
例子:
create table shujv1
(id int not null primary key,
name varchar(20),
)
create table shujv2
(id int not null,
name varchar(20),
age int not null,
foreign key(age) references shujv1(id) on delete cascade on update cascade
)
REFERENCES关联主表shujv1中的主键属性id
ON DELETE、ON UPDATE指明父表中对主键进行删除、更新操作,不指定则表示不能进行删除、更新操作
CASCADE表明子表中外键字段值也会被更新或删除,除了CASCADE,还可以使用SET NULL(父表更新或删除时,子表字段值设置为NULL)、NO ACTION(父表更新或删除时,子表不进行任何操作)
3、唯一约束(UNIQUE)
唯一约束:确保不是主键的属性不会出现重复数据,定义唯一约束时,也会自动创建唯一索引
唯一约束与主键约束的区别:
一个表只能定义一个主键约束,但是可以定义超过1个唯一性约束
主键约束不允许属性值为空,而唯一性约束的属性允许为空
4、非空约束(NOT NULL)、空值约束(NULL)
确保属性列中的数据不能为空,如果没有明确指定非空约束,则默认允许为空。空值和0的字符串’’含义不同
5、默认值约束(DEFAULT)
即向表中插入数据时,如果用户没有明确给出属性的值,数据库会自动为该属性添加默认值。
一般用于定义参数的值
6、AUTO_INCREMENT
当属性列定义为AUTO_INCREMENT时,能够为新插入的行赋值为上一次插入的值+1,MySQL要求AUTO_INCREMENT只能用于作为主键的列
数据表中的属性可以同时定义多个约束,注意:
1、如果同一个属性有默认值约束和其他约束,默认值要写在其他约束前面
2、如果同一个属性有多个约束,中间使用空格分隔开
修改数据库(数据库对应的字符集和校对集)
使用alter命令来完成数据库的修改,一般是修改数据库的字符集和校对集
语法:ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 字符集 COLLATE 校对集
修改数据表
新增属性
语法: ALTER TABLE 表名 ADD 属性名称 数据类型[约束]
例子: ALTER TABLE shujv1 ADD age int NOT NULL
修改属性(数据类型)
语法: ALTER TABLE 表名 MODIFY 属性名称 数据类型[约束]
语法: ALTER TABLE 表名 CHANGE 属性名称 属性名称 数据类型[约束]
例子: ALTER TABLE shujv1 MODIFY name VARCHAR(30)
ALTER TABLE shujv1 CHANGE name name VARCHAR(30)
修改属性名称
语法: ALTER TABLE 表名 CHANGE 属性原名称 属性新名称 数据类型[约束]
例子: ALTER TABLE shujv1 CHANGE name name_new VARCHAR(30)
删除属性
语法:ALTER TABLE 表名 DROP 属性名称
如果表中只有一个属性,不允许删除
例子:ALTER TABLE shujv1 DROP name
新增属性约束
语法:ALTER TABLE 表名 ADD CONSTRAINT 约束别名 约束
例子:
ALTER TABLE test_table ADD CONSTRAINT PRIMARY KEY(id)
ALTER TABLE test_table ADD CONSTRAINT fk FOREIGN KEY test_table(name) REFERENCES test_table2(name)
删除属性约束
语法:ALTER TABLE 表名 DROP 约束
例子: ALTER TABLE test_table DROP PRIMARY KEY
ALTER TABLE test_table DROP FOREIGN KEY fk
修改表名
语法:ALTER TABLE 表名 RENAME TO 新表名
语法:RENAME TABLE 原表名 TO 新表名
例子:
ALTER TABLE shujv1 RENAME TO shujv3
RENAME TABLE shujv3 TO shujv1
删除数据库
语法:DROP DATABASE 数据库名称
例子: DROP DATABASE shujv
删除数据表
语法:DROP TABLE 表名
例子: DROP TABLE shujv1
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)