在终端或命令行中和数据库软件建立连接
mysql -uroot -p
数据库相关SQL
- 查看所有数据库
show databases; - 创建数据库
create database 数据库名;
create database db1; - 查看数据库详情
show create databse 数据库名;
show create database db1; - 创建数据库指定字符集
create database 数据库名 character set utf8/gbk;
create database db2 character set gbk; - 删除数据库
drop database 数据库名;
drop database db1; - 使用数据库
use 数据库名;
use db1;
表相关的SQL 前提需要使用了某个数据库
-
查询所有表 show tables;
-
创建表
-
create table 表名(字段1名 字段1类型,字段2名 字段2类型);
create table person(name varchar(10),age int); -
查看表详情
show create table person; -
表引擎:
innodb:支持数据库的高级操作包括:事务、外键等
myisam:只支持数据基础的增删改查操作 -
创建表指定引擎和字符集
create table 表名(字段1名 字段1类型,字段2名 字段2类型) engine=myisam/innodb charset=utf8/gbk;
create table t1(name varchar(10),age int) engine=myisam charset=gbk; -
查看表字段
desc 表名;
desc hero; -
删除表
drop table 表名;
drop table hero; -
修改表名
-
rename table 原名 to 新名;
create table t1(name varchar(10));
rename table t1 to t2; -
修改表引擎和字符集
alter table 表名 engine=myisam/innodb charset=utf8/gbk;
alter table t2 engine=myisam charset=gbk; -
添加表字段
-- 最后面添加格式: alter table 表名 add 字段名 字段类型;
-- 最前面添加格式: alter table 表名 add 字段名 字段类型 first;
-- xxx后面添加格式: alter table 表名 add 字段名 字段类型 after xxx;
alter table t2 add age int;
alter table t2 add sal int first;
alter table t2 add id int after name; -
删除表字段
alter table 表名 drop 字段名;
alter table t2 drop id; -
修改字段名和类型
alter table 表名 change 原名 新名 新类型;
alter table t2 change sal salary varchar(10); -
修改字段类型和位置
alter table 表名 modify 字段名 新类型 first/after xxx;
alter table t2 modify salary int after age;
数据相关的SQL
- 插入数据
insert into 表名 values (值1,值2,值3);
insert into person values(1,'Tom',20);
insert into 表名 (字段1,字段2) values(值1,值2);
insert into person (id,name) values(2,'Jerry'); - 查询数据
select 字段信息 from 表名 where 条件; - 修改数据
update 表名 set 字段名=值,字段名=值 where 条件; - 删除数据
delete from 表名 where 条件;
中文乱码问题
通过在终端中执行 set names gbk;
主键约束
- 什么是主键:用于表示数据唯一性的字段称为主键
- 什么是约束: 就是创建表的时候给字段添加的限制条件
- 主键约束: 插入数据必须是唯一且非空的
主键约束+自增
- 自增数值只增不减
- 从历史最大值基础上+1
注释
- 对表的字段进行描述
create table t3(id int primary key auto_increment comment '主键字段',name varchar(10) comment '这是姓名');
is null 和 is not null
别名
select ename as '姓名',sal as '工资' from emp;
select ename '姓名',sal '工资' from emp;
select ename 姓名,sal 工资 from emp;
去重 distinct
select distinct job from emp;