第4篇:DDL常见操作

第4篇:DDL常见操作

DDL:DDL:Data Define Language数据定义语⾔,主要⽤来对数据库、表进⾏⼀些管理操作。如:建库、删库、建表、修改表、删除表、对列的增删改等等。

库的管理

创建库
CREATE database 库名;
删除库
DROP database 库名;
建库通用写法
drop database if exists 旧库名;
create database 新库名;

表管理

创建表
create table 表名(
	字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],
	字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],
	字段名3 类型[(宽度)] [约束条件] [comment '字段说明']
)[表的⼀些设置];
				
create table student(
			sname varchar(20),
			age int,
			gender varchar(6)
			);
注意:
1、在同一张表中,字段名不能相同
2、宽度和约束条件为可选参数,字段名和类型是必须的
3、最后一个字段后不能加逗号
4、类型是限制字段必须以何种数据类型来存储记录
5、类型其实也是对字段的约束
6、类型后写的约束条件是在类型之外额外添加的约束
约束说明
NOT NULL:标识该字段不能为空
DEFAULT VALUE:标识该字段设置默认值,默认值为value
PRIMARY KEY:标识该字段为该表的主键,可以唯一的标识记录,插入重复的会报错
	⽅式1:跟在列后
        CREATE table lib(
                a INT NOT NULL COMMENT '字段a' PRIMARY KEY
            );
    方式2:在所有列定义之后定义
        CREATE TABLE lib(
                a INT NOT NULL COMMENT '字段a',
                b INT NOT NULL DEFAULT 0 COMMENT '字段b',
                PRIMARY KEY(a)
            );
     此方式支持设置多个主键,中间用逗号隔开
FOREIGN KEY:为表中的字段设置外键
    语法:
    FOREIGN KEY(当前表的列名) REFERENCES 引⽤的外键表(外键表中字段名称)
        注意:
        • 两张表中需要建⽴外键关系的字段类型需要⼀致
        • 要设置外键的字段不能为主键
        • 被引⽤的字段需要为主键
        • 被插⼊的值在外键表必须存在

UNIQUE KEY:唯一约束,表明此字段是唯一的
语法:
	方式1:
		写在字段定义后
		CREATE TABLE lib(
				a INT NOT NULL UNIQUE KEY
			);
	方式2:
		写在所有列之后
		CREATE TABLE lib(
				a INT NOT NULL,
				b INT NOT NULL,
				UNIQUE KEY(a,b)
			);

AUTO_INCREMENT:自增约束(整数数据类型,且为主键)
    注意:
    ⾃增长列当前值存储在内存中,数据库每次重启之后,会查询当前表中⾃增列的最⼤值作
    为当前值,如果表数据被清空之后,数据库重启了,⾃增列的值将从初始值开始
创建SQL的主键和外键约束的方法:
create table Student --建表格式:create table 自定义的表名
( --字段名一般为有一定意义的英文
StudentName nvarchar(15), -- 格式:字段名类型()括号里面的是允许输入的长度
StudentAge int, --int型的后面不需要接长度
StudentSex nvarchar(2) --最后一个字段后面不要逗号
)
–在创建表时就可以对字段加上约束:
create table Student
(
StudentNo int PRIMARY KEY IDENTITY(1,1), --加主键约束,还有标识列属性(两者构成实体完整性)
StudentName nvarchar(15) not null, --加非空约束,不加"not null" 默认为:可以为空
StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外键约束,格式:FOREIGN KEY REFERENCES 关联的表名(字段名)
StudentAge int DEFAULT ((0)), --加默认值约束
StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加检查约束,格式:check (条件表达式)
)
–已经创建好的表如何添加外键约束
– 主键:
alter table 表名
add constraint PK_字段名
--"PK"为主键的缩写,字段名为要在其上创建主键的字段名,'PK_字段名'就为约束名
primary key (字段名) --字段名同上
--唯一约束:
alter table 表名
add constraint UQ_字段名
unique (字段名)
–外键约束:
alter table 表名
add constraint FK_字段名--"FK"为外键的缩写
foreign key (字段名) references 关联的表名(关联的字段名) 
--注意'关联的表名'和'关联的字段名'
alter table 表A add constraint FK_B foreign key (ticket_no) references 表B(ticket_no)
alter table 表A add constraint FK_C foreign key (person_no) references 表C(person_no)
删除表
DROP TABLE IF EXISTS 表名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;

--修改表名
ALTER TABLE 旧表名 RENAME AS 新表名

--添加字段
ALTER TABLE 表名 ADD 字段名 列类型[属性]

--修改字段
ALTER TABLE 表名 MODIFY 字段名 列类型[属性]
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型[属性]

--删除字段
ALTER TABLE 表名 DROP 字段名
表设置备注
ALTER TABLE 表名 COMMENT ‘备注信息’;
复制表
只复制表结构
CREATE TABLE 表名 LIKE 被复制的表名;
复制表结构+数据
CREATE TABLE 表名 AS SELECT 字段,…… FROM 被复制的表 WHERE 条件; 

表中列的管理

添加列
ALTER TABLE 表名 ADD COLUMN 列名 类型 列约束...;
修改列
ALTER TABLE 表名 MODIFY COLUMN 列名 新类型 约束;
ALTER TABLE 表名 CHANGE COLUMN 列名 新列明 新类型 约束;
2种⽅式区别:modify不能修改列名,change可以修改列名
删除列
ALTER TABLE 表名 DROP COLUMN 列名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值