sql基本操作
记录一些sql的基本命令
sql特点
- 关系数据结构
二维表 - 关系操作集合
- 关系完整性约束
表内约束 对应的列只能放对应的数据
表间约束 自然界各实体都是有对应的关联关系(外键)
基本操作
登录
1 | mysql |
注意,建议密文输入密码,不要明文。
登出
1 | exit; |
创建数据库
create database name[option];
options是可选的,可以指定字符集和校对集.
字符集charset
校对集collate
字符集,代表当前数据库下的表存储的数据默认的字符集,如果不指定,就使用默认的/mysql/data/name/db.opt
这个文件里面有默认的选项
创建数据表
1 | create table name( |
other 代表其他的属性
如不能为空,自增,主键,唯一键等。
查询
查询数据库
show databases;
show databases like 'ch%'
显示ch开头的数据库
匹配模式
1 | _匹配任意单字符 |
查询所有表
show tables;
show tables like '匹配模式';
desc table_name
显示表结构
显示数据库创建语句
show create database database_name;
显示表创建语句
show create table table_name;
选择数据库
use databasename
修改数据库选项
字符集和校对集
alter database databasename charset=gbk;
如果修改了,数据库的opt文件就会体现。
修改表选项
alter table table_name options=values
数据库名不可改,但表名可以。rename table test to new
test改名为new
删除
drop database databasename
删除数据库drop table table_name
删除数据表alter table table_name drop 字段
删除字段
复制表结构
create table new_table_name like table_name
只复制结构,但是不会复制表的数据.
插入数据
insert into table_name() values();
查询数据
selete * from table_name
select 字段 from table_name
select * from table_name where
where 条件。
设置字符集
1 | set names; |
列属性
null
default
例描述
主键 primary key
唯一键 unique
自动增长 auto_incerment
创建主键
方案1
直接在字段后增加
方案2
在所有字段之后增加主键选项
方案3
alter table table_name add primary key(字段);
复合主键
primary(id,c_id)
自动增长
auto_increment
随字段创建,可以设置步长,起始值。
group by
分组查询
group_concat()
为了将分组中指定的字段进行合并(字符串拼接)
!order by
order by 字段[asc|desc];
asc 升序,desc降序
默认降序
!Limit子句
用来限制记录数量获取
记
值得注意的是:mysql记录的数量从0开始
!union 联合查询
select * from table1 union select * from table2;
all保存所有结果。
union理论只要保证字段数一样,不需要每次拿到的数据对应的字段类型一直。字段数取决于第一个select
对应的字段语句