数据库简介
数据库是一个文件系统,获取通过SQL语句操作。
一个数据库的服务器中有多个数据库,一个数据库中有多个表。
数据库中数据类型:
- 字符串型:VARCHAR、CHAR
varchar和char区别:
varchar(经常使用) 长度是可变的。 name varchar(8) 存入数据hello,但是如果存入helloworld报错了。
char 长度不可变的。 name char(8) 存入的数据hello,如果不够用空格补全。
效率高:char效果。 - 大数据类型(一般不用):BLOB、TEXT
BLOB:二进制文件
TEXT:字符 - 数值型:TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE
- 逻辑型:BIT
- 日期型:DATE、TIME、DATETIME、TIMESTAMP
- date 只包含日期
- time 只包含时分秒
- datetime和timestamp包含日期和时分秒区别:
- datetime需要手动录入时间。
- timestamp不传入数据,默认选择当前系统时间。
表的约束
- 主键约束
标识标记该条记录。 通过pramary key声明主键。(默认唯一、非空)
auto_increment 数据库维护主键。自动增长。 - 唯一约束
值是唯一的。使用unique声明 - 非空约束
值不能为空 not null
SQL
SQL简介
- Structured Query Language, 结构化查询语言。
- 非过程性的语言
- 过程性的语言:我下一条语句,需要依赖上一条或者上几条语句。
- 非过程性的语言:写一条语句,就会执行一个结果。
SQL分类
- DDL:数据定义语言
创建数据库,创建表、删除和修改数据库
(create drop alter) - DML:数据操纵语言
操作数据(insert update delete) - DCL:数据控制语言
if - DQL:数据查询语言
操作数据(select)
SQL-数据库的操纵(CRUD)
创建数据库
- create database 数据名称;
- create database 数据库名称 character set 编码 collate 校对规则;
校对规则:和编码是成对出现的。
修改数据库
- alter database 数据库 character set 编码 collate 校对规则;
查看数据库
- show databases;
查询数据库的定义
- show create database 数据库;
删除数据库
- drop database 数据库名称;
其他操作
- use db_name; 切换数据库
- select database(); 查看当前使用的数据库
例:
创建一个名称为mydb1的数据库。
create database mydb1;
创建一个使用utf8字符集的mydb2数据库。
create database mydb2 character set 'utf8';
创建一个使用utf8字符集,并带校对规则的mydb3数据库。
create database mydb3 character set 'utf8' collate 'utf8_bin';
查看当前数据库服务器中的所有数据库
show databases;
查看前面创建的mydb2数据库的定义信息
show create database mydb2;
删除前面创建的mydb1数据库
drop database mydb1;
查看服务器中的数据库,并把其中某一个库的字符集修改为gbk
alter database mydb2 character set 'gbk';
SQL-表的操纵(CRUD)
创建表
- create table 表名(
字段1 类型(长度) 约束,
字段2 类型(长度) 约束,
字段3 类型(长度) 约束,
字段4 类型(长度) 约束
);
注意: - 表名小括号,后面要有分号。
- 每一行字段后面要有逗号,但是最后一行没有逗号。
- 数据的类型后面有长度,如果是字符串类型,长度必须加。如果其他类型可以不加。默认长度。int 默认长度11
修改表
alter table 表名 add 字段 类型(长度) 约束; – 添加字段
alter table 表名 drop 字段; – 删除字段
alter table 表名 modify 字段 类型(长度) 约束; – 修改类型或者约束
alter table 表名 change 旧字段 新字段 类型(长度) 约束 – 修改字段的名称
rename table 表名 to 新表名; – 修改表名
alter table 表名 character set utf8; – 修改字符集
删除表
drop table 表名;
其他操作
desc 表名; 查看表的信息
show tables ; 查看当前库内所有表名
show create table 表名; 查看建表语句和字符集
例:
创建表:
create table employee(
id int,
name varchar(20),
gender varchar(10),
birthday date,
entry_date date,
job varchar(100),
salary double,
resume text
);
创建表加约束
create table employee2(
id int primary key auto_increment,
name varchar(20) unique not null,
gender varchar(10) not null,
birthday date not null,
entry_date date not null,
job varchar(100) not null,
salary double not null,
resume text not null
);
在上面员工表的基本上增加一个image列。
alter table employee add image varchar(20);
修改job列,使其长度为60。
alter table employee modify job varchar(60);
删除gender列。
alter table employee drop gender;
表名改为user。
rename table employee to user;
修改表的字符集为utf8
alter table user character set utf8;
列名name修改为username
alter table user change name username varchar(30);