SQL(Structure Query Language)结构化查询语言,MySQL并无彻底实现ANSI/ISO的SQL标准,而且在基础上增长了一些扩展SQL语句好比LIMIT等。sql
DDL语句、DML语句、DCL语句数据库
主要用于定义数据库、表结构、索引等内容,经常使用语句以下:spa
建立数据库:code
CREATE DATABASE twitter CHARSET=utf8;
删除数据库:排序
DROP DATABASE twitter;
建立表:索引
create table `user`( id int(11), title varchar(50) );
删除表:ip
DROP TABLE user;
增长字段:it
ALTER TABLE user ADD COLUMN age tinyint(4) AFTER name;
删除字段:io
ALTER TABLE user DROP COLUMN age;
修改字段:table
ALTER TABLE user MODIFY name varchar(20);
修改字段名:
ALTER TABLE user CHANGE name nickname varchar(50);
增长索引:
ALTER TABLE user ADD INDEX idx_age(age);
删除索引:
ALTER TABLE user DROP INDEX idx_age;
主要用于数据库表数据的增删改查等操做。
增长数据:
INSERT INTO user(id, name) VALUES(1, '小明'), (2, '小红');
删除数据:
//删除一张表数据 DELETE FROM user WHERE id = 1; //同时删除多张 DELETE a,b FROM user AS a, user2 AS b WHERE a.id = 1 AND b.id = 2;
修改数据:
//修改一张表 UPDATE user SET age = 10 WHERE id = 1; //同时修改多个表 UPDATE user, user2 SET user.age = 10, user2.age = 20;
查询数据:
//简单查询 SELECT id,name FROM user; //查询去重 SELECT distinct name,id FROM user; //查询总数 SELECT COUNT(1) FROM user; //分页排序 SELECT id,name FROM user ORDER BY id DESC LIMIT 0, 10; //分组筛选 SELECT name, COUNT(1) as t FROM user GROUP BY age HAVING t > 10; //联合查询 不加ALL会隐藏重复数据 SELECT id,name FROM user UNION ALL SELECT id,name FROM user2; //子查询 SELECT id,name FROM user WHERE id IN(SELECT id FROM user2); SELECT id,name FROM user WHERE id = (SELECT id FROM user2 LIMIT 1); //链接查询查询 SELECT * FROM user INNER JOIN user2 ON user.name = user2.name; SELECT * FROM user LEFT JOIN user2 ON user.name = user2.name;
增长帐号并赋予权限:
GRANT SELECT,INSERT,DELETE ON twitter.* TO 'username@127.0.0.1' IDENTIFIED BY 'password';
修改权限:
ROVOKE SELECT ON twitter.* FROM 'username@127.0.0.1';