一:SQL语句 - 系统的撸一遍MySQL

MySQL中的SQL

SQL(Structure Query Language)结构化查询语言,MySQL并无彻底实现ANSI/ISO的SQL标准,而且在基础上增长了一些扩展SQL语句好比LIMIT等。sql

SQL语句主要分为三类:

DDL语句、DML语句、DCL语句数据库

DDL(Data Definition Language)语句:

主要用于定义数据库、表结构、索引等内容,经常使用语句以下: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;

 DML(Data Manipulation Language)语句:

主要用于数据库表数据的增删改查等操做。

增长数据:

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;

DCL(Data Control Language)语句:

增长帐号并赋予权限:

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';
相关文章
相关标签/搜索