MySQL常用语句

? contents帮助目录
mysql -h localhost -u root -p
DDL创建库创建表 create drop alter
DML数据操作 insert update delete
DQL数据查询 select
DCL数据控制 crant revoke commit rollback
php中所有select语句返回资源,非select语句返回真假

DDL:

create database if not exists xsphpdb;
show databases;
drop database if exists xsphpdb;
drop table if exists users;
\s看状态
\c退出撤销
show variables like ‘time_zone’;或’port’或’character_set_server’ 时区,端口,服务器字符集设定
show engines;搜索引擎
show character set;字符集
show collation like ‘gbk%’;校对
create table xsphpdb.users(id int,name char(30),age int,sex char(3));字段名 列类型 [属性] [索引]; [表类型] [表字符集]
use xsphpdb;选择默认数据库
show tables;查看默认库的所有表
desc users;查看表结构

DML:

insert into users(指定字段如id,name可不写) values(1,’zhangsan’,10,’nan’);
update users set name=’lili’,age=19 where id=2;更改数据
delete from users where id=2;删除数据

DQL:

select * from users;查询内容

create:

create table t1(num int(5) zerofill,price float(7,2) zerofill,name varchar(10));int型变量不受5的限制,zerofill加前导零,数值变量自动转换为无符号
create table t2(id int auto_increment primary key,name char(10));自动增长属性,需创建主键索引,当输入记录时id内容为NULL,0或空时id会自动加一,输入不重复的数值则不自动加一,下次在此基础上自动加一
create table t3(id int not null,name varchar(30) not null);
创建表最好设为非空属性,防止SQL的null转换到PHP时出现麻烦
create table t4(id int not null default 0,name varchar(30) not null default ‘’);缺省值属性与非空属性配合用
索引:
create table t5(id int) engine=InnoDB default character set gbk collate gbk_chinese_ci;

select:

select /table./[table.]field1,field2[(as) alias2]
distinct不重复
from tablename
where 不可用=null而是is (not) null或<=>null
id (not) between 10 and 20包括10和20
id (not) in(5,10,15)
name like ‘%java__’ _代表一个字符 %代表任意个字符
regexp rlike正则表达式
group by 按分组
select cid.count(*),sum(price),max(price),min(price),avg(price) from products group by cid having avg(price)>50;
having
order by fieldname [asc/desc] 按排序
limit 0,1 限制数量

count() sum() avg() max() min()

多表查询
select c.name cname,c.desn cdesn,p.name pname,p.price,p.desn pdesn,p.num from cats c,products as p where c.id=p.cid;表的合并
select a.id aid,a.name aname,b.id bid,b.name bname from cats a,cats b where b.pid=a.id;
嵌套查询
select * from products where cid in(select id from cats where name like ‘j%’);

alter:

alter table t1 add name varchar(10) not null after id;/first更改表结构,在,,后加表
alter table t1 modify sex char(3);只改类型
alter table t1 change name username varchar(30);该类型和名称
alter table t1 rename as users;该表名
alter table users drop age;

primary key主键索引,最好每个表定义一个主键,且一个表只能有一个主键,主键非空且不能重复primary key(id)设置主键
unique 唯一索引 不重复 一个表可有多个唯一索引
key pname(name,price)常规索引 提升数据库性能
全文索引
index name(name,pid)

表类型:使用engine=,,,
MyISAM快速读取
占用空间小 全文索引
InnoDB占用空间大最大2倍,速度不快
事务处理 数据行锁定 外键约束

内置函数:用于select及其子句where order by having update delete函数中可以将字段名作为变量

字符串函数:

concat(s1,s2,,,)字符串连接
insert(str,x,y,insertstr)将str的x开始后面y个字符替换为insertstr
lower(str) upper(str)转换大小写
left(str,x) right(str,x)返回str左/右x个字符
lpad(str,n,pad) rpad(str,n,pad)用pad对str左/右进行填充直到字符串长度为n:select name,lpad(rpad(name,10,‘@’),20,’#’);
trim(str) ltrim() rtrim()去掉两边/左/右空格
replace(str,a,b)用b替换str中的a
strcmp(str1,str2)前大于后返回1
substring(str,x,y)返回str中x开始后y个字符
php中的大部分函数

数值函数:

abs(x)返回绝对值
ceil(x) floor(x)返回大于/小于x的最小/大整数
mod(x,y)求x%y
rand()返回0-1间随机数 select ceil(rand()*100);
roound(x,y)返回x四舍五入有y位小数的值
truncate(x,y)返回x保留y位小数的结果不四舍五入

日期函数:

now()返回日期和时间
curdate()当前日期
curtime()
unix_timestamp(now())将当前时间转为时间戳秒数
from_unixtime(时间戳)时间戳转换为日期加时间
monthname(now())
week(now())
year(now())
hour(curtime())
date_format(now(),”%y-%m-%d %h:%i:%s”)
php时间戳

流程控制函数:

if(salary>3000,’high’,’low’)
ifnull(value1,value2)若value1为空则返回value2
case when [v1] then [result1] … else [default] end

其他函数:

database()
version()
user()
inet_aton(‘ip’)
inet_ntoa(num)
password(‘pwd’)系统用户密码加密
md5(‘12345’)应用数据加密

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. DDL:
  2. 2. DML:
  3. 3. DQL:
  4. 4. create:
  5. 5. select:
  6. 6. alter:
  7. 7. 字符串函数:
  8. 8. 数值函数:
  9. 9. 日期函数:
  10. 10. 流程控制函数:
  11. 11. 其他函数: