登陆mysql: mysql -hlocalhost -uroot -proot
创建数据库:create database dbname charset utf8
查看数据库:show databases;
选择数据库:use dbname;
删除数据库:drop database dbname;
创建数据表: create table tbname (
id int(10) primary key auto_increment,
name char(10) not null defaule '',
.......
)engine myisam/innodb charset utf8/gbk
设定环境编码的命令:set names gbk;
查看数据表:show tables;
查看建表语句:show create table tbname;
查看表结构:desc tbname;
修改表(增加列):alter table tbname add 列名称 列类型
修改表(修改列):alter table tbname change 旧列名 新列名 列类型
修改表(删除列):alter table tbname drop 列名称
索引
1. 提高查询速度,但是降低了增删改的速度,所以使用索引时,要综合考虑
2. 索引不是越多越好,一般我们在常出现于条件表达式中的列加索引
3. 值越分散的列,索引的效果越好
索引类型
1. primary key 主键索引
2. index 普通索引
3. unique index 唯一性索引
4. fulltext index 全文索引
修改表(增加主键索引):alter table tbname add primary key(主键所在列名)
修改表(删除主键索引):alter table tbname drop primary key;
修改表(增加唯一索引):alter table tbname add unique index 索引名(列名);
修改表(增加全文索引):alter table tbname add fulltext index 索引名(列名);
修改表(删除普通索引):alter table tbname drop unique index 索引名;
清空数据表内容:truncate tbname;
删除表:drop table admin;
插入数据: insert into tbname (列1,列2,列...) values(val1,val2,val...) 指定值与列一一对应
insert into tbname values(val1,val2,val3...) 全部列都插入值
insert into tbname values(val1,val2,val3...),(val1,val2,val3...),(val1,val2,val3...) 插入多行数据
删除数据: delete from tbname where 列名=列值;
修改数据: update tbname set 列名1=新列值1,列名2=新列值2 where 条件;
查询数据: select 列1,列2,列3 from tbname;
数据类型: 整型 tinyint (0-255/-128-127) smallint (0-65536/-32768-32767) mediumint () int bigint 共5种类型
unsigned 无符号(不能为负) zerofill (0 填充) M 填充后的宽度
举例: tinyint unsigned; tinyint(6) zerofill;
数值型: 浮点型: float double
格式: float(M,D) D 表示小数位数 unsinged zerofill;
字符型: char(M) 定长 varchar(M) 变长 text
列 实存字符 实占空间
char(M) 0<=i<=M M
varchar(M) 0<=i<=M i+1
year YYYY 范围: 1901~2155. 可输入值2位和4位(如98,2012)
date YYYY-MM-DD 如: 2010-03-04
日期时间类型: time HH:MM:SS 如: 19:26:32
datetime YYYY-MM-DD HH:MM:SS 如: 2010-03-14 19:26:32
timestamp YYYY-MM-DD HH:MM:SS 特性:不用赋值,该列会为自己赋当前的具体时间
查询详解: (1) 条件查询 where a. select 列1,列2,列3.. from tbname where 列x=列x值;
b. 比较运算符 select 列1,列2,列3.. from tbname where 列x[=|!=|<|>|<=|>=]列x值;
c. like,not like ('%'匹配任意多个字符,'_'匹配任意单个字符)
d. in,not in,between and
e. is null,is not null
(2) 分组 group by 配合5个聚合函数使用 max(最大),min(最小),sum(求和),avg(求平均),count(统计)
(3) 筛选 having
(4) 排序 order by
(5) 限制 limit
连接查询:
左连接: 例句 select 列1,列2,列3... from tbnameA left join tbnameB on tbnameA.列1 = tbnameB.列2;
右连接: 例句 select 列1,列2,列3... from tbnameB right join tbnameA on tbnameA.列1 = tbnameB.列2;
左右连接都是以在左边的表的数据结构为准,沿着左表查询。
内连接是以两张表都有的共同部分数据为准,也就是左右连接的数据之交集。
子查询:
where 型子查询:内层sql的返回值在where后作为条件表达式的一部分
例句: select * from tableA where colA = (select colB from tableB where ...);
from 型子查询:内层sql查询结果,作为一张表,供外层的sql语句再次查询
例句:select * from (select * from ...) as tableName where ...
字符集
客服端sql编码 character_set_client
服务器转化后的sql编码 character_set_connection
服务器返回给客户端的结果集编码 character_set_results
快速把以上3个变量设为相同值: set names 字符集
存储引擎 engine:Myisam/Innodb
1. Myisam 速度快 不支持事务 回滚
2. Innodb 速度慢 支持事务 回滚
事务执行顺序:
a. 开启事务 start transaction
b. 运行sql
c. 提交,同时生效\回滚 commit\rollback
触发器: trigger
监视地点: 表
监视行为: 增 删 改
触发时间:a fter\before
触发事件: 增 删 改
创建触发器语法:
create trigger tgName
after/before insert/delete/update
on tableName
for each row
sql 触发语句
删除触发器: drop trigger tgName;
关于mysql的常见操作SQL语句
最新推荐文章于 2024-09-24 09:50:23 发布