MySQL基础语法

数据库定义语言

DDL(Data Definition Language)数据库定义语言:
    主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作

选择要操作的数据库:USE 数据库名;

列出数据库管理系统的数据库列表:SHOW DATABASES;

显示数据库的所有表:SHOW TABLES;

显示数据表的信息:SHOW COLUMNS FROM 数据表;

创建数据库:CREATE DATABASE 数据库名;

删除数据库:DROP DATABASE 数据库名;

创建数据表:CREATE TABLE table_name (column_name column_type);

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • DEFAULT

删除数据表:DROP TABLE table_name;

数据操纵语言

DML(data manipulation language)数据操纵语言:
    主要用来对数据库的数据进行操作

插入数据:INSERT INTO table_name (field1, field2,...fieldN) VALUES (value1, value2,...valueN);

删除数据:DELETE FROM table_name [WHERE Clause];

更新数据:UPDATE table_name SET field1=new-value1,field2=new-value2 [WHERE Clause];

查询数据:SELECT column_name FROM table_name [WHERE Clause] [LIMIT N] [OFFSET M];

WHERE子句:... WHERE condition1 [AND [OR]] condition2...

  • LIKE (效率低) %匹配任意字符,_匹配任意一个字符
  • AND
  • OR
  • NOT
  • = \ <> \ < \ > \ >= \ >=
  • BETWEEN
  • IS NULL
  • IS NOT NULL

AS:别名

ORDER BY:...ORDER BY field1, [field2...] [ASC [DESC]]

  • ASC升序(默认)
  • DESC降序

GROUP BY:...GROUP BY field [HAVING ...]

LIMIT(非标准SQL):...LIMIT num1[,num2]

函数

  • NOW():当前日期和时间
  • CURDATE():当前日期
  • CURTIME():当前时间
  • avg()
  • COUNT()
  • MAX()
  • MIN()
  • SUM()

数值类型:http://www.runoob.com/mysql/mysql-data-types.html

连接查询
内链接:select * from A inner join B on A.id = B.id;
左外连接:select * from A left join B on A.id = B.id;
右外连接:select * from A right join B on A.id = B.id;

子查询

  • in(not in)关键字select * from A where id in(select id from B);
  • 运算符select * from A where id>=(select id from B);
  • exists(not exists)关键字select * from A where id exists(select id from B);
  • any关键字select * from A where id>=any(select id from B);
  • all关键字select * from A where id>=all(select id from B);

合并查询

  • union(去除重复记录)select id from A union select id from B;
  • union all(不去除重复的记录)

查询优化

  • 尽量避免全表扫描,考虑在 where 及 order by 涉及的列上建立索引
  • 尽量用inner join.避免 left join(或 right join)
  • 尽量避免子查询,而用 join
  • 用 exists 代替 in,用 outer Joins 或 not exists 代替 not in
  • 用 where 子句替换 HAVING 子句( HAVING 只会在检索出所有记录之后才对结果集进行过滤)
  • 使用缓存,减少访问次数

数据库控制语言

DCL(Data Control Language)数据库控制语言:
    设置或更改数据库用户或角色权限的语句

创建用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

  • username:用户名
  • host:登陆主机,本地用户可用localhost,从任意远程主机登陆可以使用通配符%
  • password:登陆密码,密码可以为空

授权:GRANT privileges ON databasename.tablename TO 'username'@'host';

  • privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,所有权限使用ALL

设置与更改用户密码:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
撤销用户权限:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
删除用户:DROP USER 'username'@'host';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值