SQL语言的分类
数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
一、 DDL
创建基本表
create table student ( Sno char(5) not null unique, Sname char(20) unique, Ssex char(1), Sage int, Sdept char(15));
复制表结构和数据
create table new_dwd_inv_return_record as select * from dwd_inv_return_record;
复制表结构不复制数据
create table new_dwd_inv_return_record as select * from dwd_inv_return_record where 1 =0;
修改基本表
修改表名(法一):
ALTER TABLE user10 RENAME TO user11;
修改表名(法二):
RENAME TABLE user11 TO user10;
删除表
drop table <表名>
删除表中数据,保留结构
truncate table ‘表名’
修改表名
ALTER TABLE dwd_pro_repay_record RENAME TO d_pro_repay_record;
查询数据(模糊查询)
select * from dwd_inv_contract where borrow_rate like '%' limit 19;
查看表结构信息
desc student;
建立与删除索引
create [unique] [cluster] index <索引名> on <表名> (<列名> [<次序][,<列名>[<次序]].....);
注:
unique:表明此索引的每个索引值只对应惟一的一个记录
cluster:表时要建立的索引是聚簇索引,即按某一列建好索引后,硬盘上的数据存储顺序也调整为按这个列的顺序存储,索引的顺序和存储顺序是一致的
drop index <索引名>;
create unique index studentIndex on student (sno);
drop index studentIndex;
创建视图
create view v_payment_myisam as select * from payment;
二、DML
添加字段
alter table tea add id int(20) not null PRIMARY KEY ;
删除表中字段
alter table tea drop column id;
设置主键自增
auto_increment
修改字段名:
alter table tab_info rename column createname to thisname;
修改字段属性:
alter table tab_info alter column thisname varchar(200) not null;
修改默认值
alter table tabinfo add constraint df default('嘿嘿') for thisname;
查看表结构
desc 表名
向表中插入数据
insert into tbl1 values('jingba',2345);
删除表中数据
delete from tbl1 where id=1;
修改表中数据
update tbl1 set name=""
从第几条开始向后查几条
select * from dept order by deptno limit 2,1;
查看当前时间
select now();
设置时间的格式
select date_format(now() , '%Y-%m-%d %H:%:m:%s');
三、DCL
给root用户设置新密码
mysql>update user set authentication_string=password("123456") where user="root";
创建用户并授予所有权限
mysql> GRANT ALL PRIVILEGES ON *.* TO jiqing@"%" IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.03 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
查看所有用户(root)
select host,user from mysql.user;
授予远程访问权限
GRANT ALL PRIVILEGES ON *.* TO 'bdr'@'%' IDENTIFIED BY 'D.123%dr' WITH GRANT OPTION;
四、SQL函数
求和(sum)
select sum(order_price) as sunnum from orders ;
求平均数(avg)
select AVG(order_price) from orders
去重(distinct)
SELECT DISTINCT (order_price) from orders;
排序(order by)
SELECT DISTINCT(order_price) from orders ORDER BY order_price DESC;(默认,升序ASC)
指定条数查询(limit)
SELECT DISTINCT(order_price) from orders limit 3;
模糊查询(like)
SELECT customer from orders where customer LIKE 'li%'
范围查询-散列(in)
SELECT * from orders where order_price in (300,600);
范围查询-区间(between)
SELECT * from orders where order_price BETWEEN 300 and 600;