数据库、数据表基本操作
使用help cmd; 如:help create table;
查找帮助,[]
为可选项,()
为必选项
参考文档
1. 数据库操作
- 登录
mysql -h host_name -u user_name -p my_passwd
例如:mysql -hlocalhost -uroot --default-character-set=utf8 data_name
- 查看数据库、数据表
show databases;
show tables;
- 创建数据库
create database school character set utf8 collate utf8_general_ci;
- 选择使用那个数据库
use data_name;
- 删除数据库(该操作太危险)
drop database data_name;
2. 数据表操作
- 创建表
create table student(
name varchar(20) not null comment '姓名',
sid int(10) not null primary key comment '学员',
major varchar(50) not null default '电器工程与自动化' comment '专业',
tel varchar(11) not null unique key comment '手机',
birthday date not null comment '出生日期'
);
- 查看某个指定数据表的字段信息
show columns from student;
或
desc student;
或
describe student;
- 查看创建表的信息
show create table student;
- 重命名表名
alter table student rename student_new;
- 重命名字段名称
alter table student change 原字段名 新字段名与新字段定义。例如:
alter table student change name new_name varchar(30) not null comment '姓名';
- 增加和删减字段
alter table student add email varchar(50) not null comment '电子邮箱';
alter table student drop email;
- 删除表
drop table student if exists student;
3. 备份与恢复
- 备份
mysqldump --opt school -h MySQL数据库所在的域名或IP地址 -u user_name -p -r 备份的地址
例如:
mysqldump --opt school -h 127.0.0.1 -u root -p -r /home/backup.mysql
- 恢复
mysql -h MySQL数据库所在的域名或IP地址 -u user_name -p 要恢复的数据库名 < 备份文件的路径
例如:
mysql -h 127.0.0.1 -u root -p school < /home/backup.mysql
常用SQL语句
1. 查询语句
基本查询:
select * from student where birthday > '1990-01-01';
正则表达式:
select * from student where sid regexp '^[5-9]+';
模糊查询:
select * from student where sid like '%123%';
- 带结果排序的SELECT查询
asc : 升序(默认)
desc : 降序
select 字段名[字段名,...] from table_name where 条件表达式 order by 字段名[字段名,...] [asc | desc];
例如:
select * from student where birthday > '1990-01-01' order by birthday desc;
select * from student where birthday > '1990-01-01' order by birthday desc limit 30;
2. 插入语句
insert into table_name (字段名,...) values (字段名,...);
insert into table_name set 字段名=字段值,...;
insert into table_name (name, sid) values ('kitter',123456) on duplicate key update name=values(name), sid=values(sid);
3. 更新表记录
update table_name 数据表名 set 字段名=新字段值,...[where 查询条件];
4. 删除表记录
delete from 数据表名 [where 查询条件];
高级查询
1. 分组
select mark, count(*) from stu_mark where mark > 80 group by mark having mark > 90 order by mark desc;
2. 联合查询
联合、内联、左联、右联、全联合
连接查询参考1
连接查询参考2
3.子查询
有时进行查询,需要的条件是另外一个SELECT
语句的结果,这个时侯就要使用子查询。用于子查询的关键字主要包括IN、NOT IN、=、!=、EXISTS、NOT EXISTS
等