SQL语法组成
? DML( Data Manipulation Language数据操作语言
查询、插入、删除和修改数据库中的数据; SELECT、INSERT、 UPDATE 、DELETE等;
? DCL( Data Control Language数据控制语言) ——用来控制存取许可、存取权限等;
——GRANT、REVOKE 等;
? DDL( Data Definition Language数据定义语言)
——用来建立数据库、数据库对象和定义其列 ——CREATE TABLE 、DROP TABLE、ALTER TABLE 等
? 功能函数 ——日期函数、数学函数、字符函数、系统函数等
可以添加BINARY关键字让 mysql执行区分大小写的比较。 |
|
mysql |
|
连接数据库 |
mysql -h host_name -u user_name –ppassword |
导入数据库 |
mysql –u root –p --default-characterset=latin1 dbname < backup.sql |
导出数据库 |
mysqldump –u root –p tmpdb > backuptmp.sql |
创建数据库 |
mysqladmin –u root –p create newdb |
删除数据库 |
mysqladmin –u root –p drop newdb |
更改密码 |
mysqladmin –u root –p password “newpasswd” |
|
|
数据库操作 |
|
创建数据库 |
create database 数据库名 |
删除数据库 |
drop database 数据库名 |
切换数据库 |
use 数据库名 |
查看当前操作数据库 |
select database() |
查看所有的数据库 |
show database |
临时更改字符集 |
set names 字符集 注:utf-8在数据库里是utf8 |
数据表的操作 |
|
创建表 |
create table 表名(字段名 数据类型(长度) [约束],……) |
在创建表的时候添加外键foreign key(sid) references student(sid) |
|
删除表 |
drop table 表名 |
查看所有表 |
show tables |
查看表结构 |
desc table 表名 |
修改表的名称 |
rename table 表名 to 新表名 |
修改表的字符集 |
alter table 表名 character set 字符集 |
重建表 |
truncate 表名 |
对表内列修改的操作 |
|
添加列 |
alter table 表名 add 新字段名 类型(长度) [约束] |
修改类型和约束 |
alter table 表名 modify 字段名 类型(长度)[约束] |
修改表的列名 |
alter table 表名 change新字段名 类型(长度) [约束] |
删除列 |
alter table 表名 drop 字段名 |
对表的记录操作 |
|
添加记录 |
insert into 表 (列名1,列名2,……)values(值1,值2) |
更新记录 |
update 表名 set 字段值1=值,字段值2=值….where 条件 |
删除记录 |
delete from 表名 while 条件 |
对表类的数据查询 |
|
完整查询语句 |
|
select 字段 from 数据库while 条件group by分组字段having条件 order by asc|desc |
|
多表的关系 |
|
添加外键 |
alter table 从表 add [constraint] [外键名称] foreign key [从表外键字段名] references 主表[主表中的主键] --外键名称主要用于差错和方便外键的删除 |
删除外键 |
alter table 表名 drop constraint 外键名 |
多表查询 |
|
交叉连接查询 |
select * from A,B |
内连接查询(隐式) |
select * from A,B while 条件 |
内连接查询(显式) |
select * from A inner join B on 条件 |
外连接查询(左) |
select * from A left outer join B on 条件 |
外连接查询(右) |
select * from A right outer join B on 条件 |