0%

sql基本操作

记录一些sql的基本命令

sql特点

  1. 关系数据结构
    二维表
  2. 关系操作集合
  3. 关系完整性约束
    表内约束 对应的列只能放对应的数据
    表间约束 自然界各实体都是有对应的关联关系(外键)

基本操作

登录

1
2
3
4
5
mysql
-h --host
-P --port
-u --user
-p --password

注意,建议密文输入密码,不要明文。

登出

1
2
3
exit;
\q;
quit;

创建数据库

create database name[option];
options是可选的,可以指定字符集和校对集.

字符集charset
校对集collate

字符集,代表当前数据库下的表存储的数据默认的字符集,如果不指定,就使用默认的
/mysql/data/name/db.opt
这个文件里面有默认的选项

创建数据表

1
2
3
4
create table name(
column_name column_type,
column_name2 column_type other
)

other 代表其他的属性
如不能为空,自增,主键,唯一键等。

查询

查询数据库

show databases;
show databases like 'ch%'
显示ch开头的数据库

匹配模式

1
2
_匹配任意单字符
%匹配多个字符

查询所有表

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 wherewhere 条件。

设置字符集

1
2
set names;
show variables like 'character_set%'

列属性

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对应的字段语句