总览
http://www.cnblogs.com/wangfengming/p/8143554.html数据库的安装(来自老王)
大纲 1.数据库 * 1.创建 create database 库名; 2.使用数据库 use 库名; 3.查询当前库下所有的表 show tables; show database; -- 显示所有数据库 *4.删除 drop database 库名; 2.表操作 *1.创建 create table 表名( 字段1 数据类型 约束条件, 字段1 数据类型 约束条件, ) *2.删除 drop table t1; 3.修改表 ALTER TABLE t1 add id int not null PRIMARY key ; -- 添加字段 ALTER TABLE t1 MODIFY salary double(10,3) not null DEFAULT 10; -- 修改字段类型与约束条件 ALTER TABLE t1 CHANGE salary sal double(10,3) not null DEFAULT 10; --修改字段名称和类型与约束条件 ALTER TABLE t1 DROP COLUMN sal; -- 删除指定字段 RENAME table t1 to t5;-- 改变表名称 4.查看 * select * from t1; -- 查询表中数据 desc t1; -- 查看表结构 show create table t1; -- 显示表的创建信息 5.复制表 create table t2 select * from t1; -- 复制表结构和表数据 * create table t3 LIKE t1; -- 只复制表结构 3.数据操作 1.增 INSERT into t2(name,age) VALUES('小三',11); -- 指定字段插入 INSERT into t2 VALUES('凤',13,2.5); -- 整表字段插入 INSERT into t2 VALUES('凤',13,2.5),('凤',13,2.5),('凤',13,2.5),('凤',13,2.5),('凤',13,2.5); --插入多条 insert into t1 SELECT id,name from t2; -- 复制表数据 2.删 delete from t2 where age = 1113; 3.改 update t2 set name ='祝小凤' , salary = 100 where age =13; 4.查 select * from T1; 1.简单查询 -- 查询所有 select * from person; --查询指定字段 select name,age FROM person; -- 别名+字段运算 select p.name,p.salary,p.salary+p.salary*0.1 as 'sum' from person as p -- 去重复查询 select DISTINCT salary,name from person; 2.条件查询 -- 逻辑运算符 < > <= >= != <> = -- is null ,is not null -- and OR () SELECT * from person where salary >5000 or ( age <=30 AND NAME =''); 3.区间查询 SELECT * FROM person where salary >=5000 and salary<=10000; -- 推荐使用 : --ps:前后包含 SELECT * FROM person where salary between 5000 and 10000; 4.集合查询 in not in SELECT * FROM person where age = 20 or age = 23 or age =30 ; SELECT * FROM person where age not in(20,23,30); 5.模糊查询 like SELECT * FROM person where name LIKE '%月'; -- 以什么结尾 SELECT * FROM person where name LIKE '月%'; -- 以什么开头 SELECT * FROM person where name LIKE '%月%'; -- 包含 SELECT * FROM person where name LIKE '_l%'; -- "_"表示占位符 6.排序 select * from person ORDER BY salary ASC,age desc; -- 强制中文[排序 select * FROM person ORDER BY CONVERT(name USING GBK) ; 7.聚合函数 select MAX(salary) from person; select MIN(salary) from person; select AVG(salary) from person; select SUM(salary) from person; select COUNT(*) from person; 8.分组查询 GROUP BY HAVING select count(id),dept_id,avg(salary) from person GROUP BY dept_id HAVING avg(salary) >=5000 ; where 与 having区别: #执行优先级从高到低:where > group by > having #1. Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。 #2. Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数 9.分页查询 LIMIT SELECT * FROM person LIMIT 2,2 10.正则表达式 SELECT * FROM person where name REGEXP '^a'; SELECT * FROM person where name REGEXP 'n$'; SELECT * FROM person where name REGEXP '.a'; SELECT * FROM person where name REGEXP '[a,e,n]'; SELECT * FROM person where name REGEXP '[^alex]'; SELECT * FROM person where name REGEXP 'a|e'; SELECT * FROM person where name REGEXP '^w.*i$'; 11. SQL 语句关键字的执行顺序 执行顺序: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY ->limit 4.权限 create user 'alex'@'127.0.0.1' IDENTIFIED by '123'; -- 创建用户 grant SELECT,UPDATE,DELETE ON db1.* to 'alex'@'127.0.0.1'; GRANT all PRIVILEGES ON db1.* to 'alex'@'127.0.0.1'; -- 所有权限 FLUSH PRIVILEGES; -- 刷新权限 update mysql.user set password=password('123456') where user='root';
http://www.cnblogs.com/wangfengming/articles/8268465.html
帮助
For developer information, including the MySQL Reference Manual, visit:
关于开发者信息,包括MySQL参考手册:访问http://dev.mysql.com/
常用指令
详细内容
一.数据库常用操作
1.查看数据库(show databases)
2.创建数据库(CREATE DATABASE 数据库名称;)
3.查看创建好的数据库的定义(SHOW CREATE DATABASE 数据库名称;)
4.使用数据库(USE)
5.删除数据库(DROP DATABASE 数据库名称)注意:删除是永久删除
6.查看默认储存引擎(SHOW ENGINES(用于查看系统默认支持的引擎));
1.innodb引擎
innodb事务型数据库首选引擎,支持事务安全表(acid),支持行锁定外键.mysql5.5.5之后作为默认储存引擎.
特性:
1.
7.查看库的引擎(SHOW VARIABLES LIKE 库名称;)
二.表的基本操作
1.创建数据表(CREAT TABLE 数据表名称(字段名, 数据类型 [列级别约束条件][默认值],);)
注意必须包含下列信息:1.创建表的名称不能使用关键字
2.数据表每一个列(字段)的名称和数据类型,多个列要用逗号隔开.
1.1使用主键约束
概念:主键又称主码,是表中一列或多列的组合,主键约束(primary key constraint)要求主键列的唯一数据,并且不允许为空.
作用:1.结合外键可以加快查询速度,2.主键和记录之间关系如同人和身份证的关系是一一对应的.
1.1.1单子段主键(字段名 数据类型 PRIMARY KEY[默认值])
(1)定义列的同时定义主键
(2)定义完所有列后定义主键
1.1.2多字段联合主键(PRIMARY KEY(字段1,字段2,...字段n);)
假设表中间没有主键id,为了唯一确定一个员工,可以把姓名和部门号联合起来作为主键使用.
1.1.3使用外键约束
外键用来在两个表数据间建立链接,它可以是一列也可以是多列.一个表可以有一个或多个外键.外键对应的是参照完整性,一个外键可以为空值,若不为空值,则每个外键必须于另一个表主键某个值.
主表(父表):主键所在表
从表(子表):外键所在表
CONSTRAONT 外键名 FORENIG KEY 字段名 REFERENCES 主表名 主键列
1.14使用非空约束(字段名 数据类型 NOT NULL;)
字段值不能为空
1.15使用唯一性约束(字段名 数据类型 UNIQUE;)
要求唯一,允许为空,但是只能有一个空值.
1.16使用默认约束(字段名 数据类型 DEFAULT 默认值)
指定记录默认赋值
1.17使用属性值自动增加(字段名 AUTO_INCREMENT;)
注意:1.一个表只能有一个字段使用AUTO_INCREMENT,2.且该字段必须为主键的一部分.3.约束的字段可以是任何数据类型
2.查看数据库中的数据表(SHOW TABLES;)
3.查看数据表结构(DESCRIBE 数据表名称)
或者用(DESC 数据表名称)
null:为该列是否可以储存的null值
key:表示该列是否已经编制索引
default:表示该列是否有默认值
extra:表示该列附加信息
4.查看表的详细语句结构(SHOW CREATE TABLE 表名称;)
可以查看创建表的详细信息,和储存引擎和字符编码
5.修改数据表名(ALTER TABLE 旧表名 RENAME TO 新表名;)
6.修改字段的数据类型(ALTER TABLE 表名 MODIFY 字段名 数据类型;)
7.修改字段名(ALTER TABLE 表名称 CHANGE 旧字段名 新字段名 新数据类型;)
8.添加表的字段(ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] FIRST|AFTER;)
8.1添加无完整约束性条件字段
8.2.添加有完整性约束条件的字段
8.3在表的指定列后添加一个字段
8.4在表的第一列添加字段
9.删除字段(ALTER TABLE 表名 DROP 字段名称;)
10.删除数据表(DROP TABLE 表名称;)
或者 DROP TABLE IF EXISTS 表名称 这会判断表是否存在
11.更改表的储存引擎(ALTER TABLE 表名 ENGINE =更改后的储存引擎名;)
12.删除表的外键约束(ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;)
三.数据的基本操作
1.为表的所有字段插入数据(INSERT INTO 表名称(列) VALUES(列的数值);)
1.指定所有字段名
2.完全不指定字段名
插入数据前先查看表中的数据(SELECT * FROM 表名称;)
3插入一条记录
4.插入多条记录
records:表名插入的记录条数
duplicates:表名插入时被忽略的记录,原因可能是记录包含了重复的主键值
warnings:表名有问题的数据值,例如发生数据类型转换
5.将查询结果插入到表中
6.更新数据(UPDATE 字段名 SET name1=value1,name2=value2 WHERE 条件;)
7.删除数据(DELETE FROM 表名称 WHERE 条件)