数据库学习(一)——DDL数据库定义语句
定义数据库
创建数据库
- 使用CRETE DATABASE关键字,指定编码和排序格式
CREATE DATABASE mysqldb DEFAULT CHARACTER SET utf-8 DEFAULT COLLATE utf8_unicode_ci; - 使用IF NOT EXITS关键字
CREATE DATABASE IF NOT EXITS mysqldb 
查看数据库
- 
查看数据库
show databases; - 
查看数据库编码
select schema_name,default_character_set_name from information_schema.schemata where schema_name = 'test'; - 
查看数据库的相关信息(MySQL版本ID号、默认字符集等信息)。
show create database mysqldb; 
删除数据库
drop database mysqldb;
定义表
设计表
- 主键(Primary Key)
数据库表要求表中的每一行记录都必须是唯一的,即在同一张表中不允许出现完全相同的两条记录。在设计数据库时,为了保证记录的“唯一性”,最为普遍、最为推荐的做法是为表定义一个主键(primary key)。 
数据库表中主键有以下两个特征:
- 表的主键可以由一个字段构成,也可以由多个字段构成(这种情况称为复合主键)。
 - 数据库表中主键的值具有唯一性且不能取空值(NULL),当数据库表中的主键由多个字段构成时,每个字段的值不能取NULL值。
 
- 实体间的关系与外键(Foreign Key)
班级实体和班主任实体之间为一对一关系,班级实体和学生实体之间为一对多关系,学生实体和课程实体之间为多对多关系。
实体间的关系可以通过外键来表示。如果表A中的一个字段a对应于表B的主键b,则字段a称为表A的外键。此时存储在表A中字段a的值,同时这个字段值也是表B主键b的值。 - 约束: Constraint
是定义在表上的一种强制规则。
当为某个表定义约束后,对该表做的所有SQL操作都必须满足约束的规则要求,否则操作将失败。 
约束类型
| 约束类型 | 描述 | 
|---|---|
frimary key | 
主键约束,表的每一行的唯一标识,指定列或者列组合的所有行数据必须唯一,且不为空 | 
unique | 
唯一性约束,指定列或者列组合的所有行数据必须唯一 | 
not null | 
非空约束,指定某列的所有行数据不能包含空值 | 
foreign key | 
外键约束,在列及引用列上建立的一种强制依赖关系 | 
check | 
检查性约束,在列上指定一个必须满足的条件 | 
数据类型




创建表
create table 表名(
字段名1 数据类型 [约束条件],
…
[其他约束条件],
[其他约束条件]
)其他选项(例如存储引擎、字符集等选项);
注意
- PRIMARY KEY,指定字段为主键。
 - AUTO_INCREMENT,指定字段为自动增加字段。
 - INDEX,为字段创建索引。
 - NOT NULL,字段值不允许为空。
 - NULL,字段值可以为空。
 - COMMENT,设置字段的注释信息。
 - DEFAULT,设置字段的默认值。
 
复制表
- 使用
like关键字,只复制表结构,不复制记录create table tablename like tablenme; - 使用
select关键字,可以实现表结构的复制,甚至可以将源表的表记录拷贝到新表中create table tablename select (字段名) from tablename; 
删除表
deop table tablename;
修改表
使用alter table关键字,完成修改表的结构,包括添加列、修改列属性和删除列等操作!
- 修改列字段或属性
modify关键字ALTER TABLE 表名 MODIFY 列名 新数据类型和长度 新列属性 - 新增列
add关键字ALTER TABLE 表名 ADD 列名 数据类型和长度 列属性 - 删除列列名
drop colum关键字ALTER TABLE 表名 DROP COLUMN 列名 
注意:
在使用modify关键字修改默认值时,需要提供数据类型和长度
- 
新增约束条件
alter table 表名 add constraint 约束名 约束类型 (字段名) - 
删除约束条件
- 删除表的主键约束条件语法格式比较简单,语法格式如下
alter table 表名 drop primary key - 删除表的外键约束时,需指定外键约束名称,语法格式如下(注意需指定外键约束名)。
alter table 表名 drop foreign key 约束名 - 删除表字段的唯一性约束,实际上只需删除该字段的唯一性索引即可,语法格式如下(注意需指定唯一性索引的索引名)。
alter table 表名 drop index 索引名; 
 - 删除表的主键约束条件语法格式比较简单,语法格式如下
 - 
修改表的属性
alter table 表名 engine=新的存储引擎类型 alter table 表名 default charset=新的字符集 alter table 表名 auto_increment=新的初始值 alter table 表名 pack_keys=新的压缩类型 - 
修改表名
alter table tablename to name; 或者 alter table tablename rename name; 
本文来自博客园,作者:yuxin!!,转载请注明原文链接:https://www.cnblogs.com/yuxin6924/p/17587907.html
                    
                
                
            
        
浙公网安备 33010602011771号