DDL—数据定义语言
创建数据库中的各种对象——表、视图、索引、同义词、聚簇等
- 进入数据库
mysql -uroot -p
密码(输入不显示) - 创建数据库
create database 数据库名字;
create database 数据库名字 charset=utf8;(直接设置编码格式,支持中文) - 查看所有数据库
show databases; - 切换数据库
use 数据库名字 - 删除数据库
drop database 数据库名字 - 修改数据库编码格式(默认latin1,中文可能乱码)
方式一:
alter database 数据库名字 character set 编码格式(utf8)
方式二:- 进入mysql的配置文件
cd /etc/mysql ------找到my.cnf并打开,看看最后是否存在这两行代码存在则继续
- 进入mysql的配置文件
- 进入 mysql.conf.d隐藏文件,打开文件mysql.cnf(gedit / vi)
- 找到代码:skip-external-locking
后面添加代码:character-set-server=utf8保存退出 - 退回上一级 mysql这个目录
找到conf.d 并进入 - 找到并打开文件mysql.cnf(空白)—设置客户端编码格式
[mysql]
default-character-set=utf8 - 重启mysql服务
service mysql restart - 检测mysql 的编码格式:
退回根目录 cd~
进入mysql 输入\s 看具体信息
这样就ok了 ,根据个人习惯,本人喜欢创建数据库时候直接创建编码格式
数据表的基本操作
- 创建表
create table 表名(id int(11),name varchar(22),deptid int(11),salary float…); - 插入数据-----列就是前面插入的id name…
第一种:
insert into 表名(列名1,列名2…)values(列值1,列值2…)
注意:
在表明后给出插入的列名,其他没有指定的列等同于插入null值
第二种(第一种简写):
insert into 表名 values(列值1,列值2…),(…).()
注意:
值的个数必须和列的个数一致,顺序一样
数据中的所有的字符串必须是单引号,不能双引号 - 查看当前数据库中所有的表:
show tables; - 查询表的数据:
selelct * from table_name;
常见六大约束:
- not null 非空
- default :默认值,用于保证该字段的默认值 ; 比如年龄
- primary key : 主键,用于保证该字段的值具有唯一性,并且非空
- unique : 唯一约束,保证该字段的值可以为空,具有唯一性
- foreign key : 外键约束; 用于限制两个表的关系, 用于保证该字段的值必须来自于主表的关联列的值;
在从表中添加外键约束,用于引用主表中的某列的值;
比如: 学生表的专业编号,员工表的部门编号,员工表的工种编号; - check : 检查约束[mysql不支持,不报错,没有实际效果]
一般都在创建表或者修改表时添加约束
- 主键约束 primary key
-
将一个字段设置为主键:
第一种:
create table ta_tmp2(id int(11) primary key,name varchar(22));----单一主键第二种:
create table ta_tmp3(id int(11),name varchar(22),primary key(id));-----称之为联合主键 -
使用主键完成自增长
格式:
字段名 数据类型 primary key auto_increment设置主键后,没一条数据不能有重复数据,不能为空,在自己手动插入数据时,会导致操作的失效,此时可以使用自增长的方式,无需手动控制,insert into 就不用写这个字段,默认自增长
-
外键约束
外键使用在两个表数据之间的建立连接,可以对一个表设置一个或者多个外键特点:
是表中的一个字段,可以不是表的主键, 一个表中的外键可以为空值,如果不为空,每一个外键必须等于另外一张表的主键的某一个值作用:
保证数据在引用时的完整性,不允许删除在另外一张表中具有关联关系的行创建外键的语法规则:
consreaint 外键名 foreign key 字段名1,字段名2…references 主表名 主键列1,主键列名2…外键名---->外键约束的名称,一个表中不能有相同名称的外键
字段名---->表示从表中需要添加外键约束的字段列
主表名-----》被从表外键所依赖的表的名称
主键列----》表示主表中定义的主键列例如:
创建部门表-----设置为主键—》主表
create table ta_dept1(id int(11) primary key,name varchar(22));创建员工表----》设置外键-----》从表
create table ta_emp1(
id int(11) primary key auto_increment,name varchar(22),deptid int(11),consreaint fk_emp_dept1 foreign key(deptid) references ta_dept1(id),) -
非空约束
非空约束----》字段中的值不能为空
格式:
字段名 数据类型 not null
create table second(id int(11) not null,name varchar(22),age int(22)); -
唯一约束
唯一约束的要求----列唯一(允许为空(只能出现一次))作用:
保证一列或者多列的值唯一格式:
字段名 数据类型 uniqueunique和primary key之间的区别:
一个表可以有多个字段设置为唯一约束,但是只有一个字段声明为主键
主键不允许为空,但是unique可以为空 -
默认约束
默认约束—》指定某一列的默认值
语法:
字段名 数据类型 default 默认值
create table pid(id INT(11) primary key auto_increment,name varchar(25),pid int(33) defalut 1111);
修改数据表
查看表详细信息:desc 表名
- 修改表名
方式一:
alter table 旧名字 rename 新名字
方式二:
rename table 旧名字 to 新名字 - 修改字段的数据类型
alter table 表名 modify 字段名 数据类型 - 修改字段
alter table 表名 change 旧字段名 新字段名 数据类型 - 添加字段
alter table 表名 add 新字段名 数据类型 +[first / after 字段名]
first:添加到最前面
after 字段名:添加到指定字段名后面 - 删除字段
alter table 表名 drop 字段名 - 删除表的外键约束
alter table 表名 drop foreign key 外键约束的名字