回顾
一、MySQL的安装和配置 : 监听在3306
1.启动服务: windows 服务管理器, mysqld-nt --console
2.停止:mysqladmin -uroot -p shutdown
二、MySQL管理
1.数据库产品
|-- 数据库(分类存储数据)
|-- 表
|-- 行(记录) 列(字段)
|-- DBMS数据库管理系统 数据库的用户通过DBMS来存取数据,管理数据
|-- 命令行客户端:
2. 客户端连接到服务器:mysql [-h 数据库服务器的IP或名] -u 用户名 -p 密码
3. 退出:quit exit
★4. SQL: 结构化查询语言 操作数据库的标准语言 SQL92 SQL1999 SQL2003 SQL200n
SELECT * FROM 表 WHERE 条件;
1)分类: DDL,DML(CRUD),DCL,Transaction Control
2)数据库操作:SHOW DATABASES; USE 数据库名;
CREATE DATABASE 数据库名; DROP DATABASE 数据库名;
5.数据列的类型
数值: INT LONGINT, FLOAT(M,D), DOUBLE(M,D), DECIMAL(M,D)
字符: CHAR(L), VARCHAR(L), BLOB, TEXT, LONGBLOB,LONGTEXT
日期和时间: DATE,TIME,DATETIME,TIMESTAMP
6.数据表的操作
1) SHOW TABLES;
2) CREATE TABLE 表名(
列名 列类型 [列约束: NOT NULL,UNIQUE,PRIMAR KEY,FOREIGN KEY,CKECK] [AUTO_INCREMENT] [DEFAULT 默认值],
...
[表约束: UNIQUE, PRIMARY KEY, FOREIGN KEY]
)[ENGINEE=表类型:InnoDB,MyISAM][DEFAULT CHARSET=字符集:utf8,gbk];
3) DESC 表名; #查看表的结构
4) ALTER TABLE 表名 [modify,add,change,drop]...;
5) DROP TABLE [IS EXISTS] 表名;
6) ALTER TABLE 表名 RENAME 新表名; RENAME 表名 TO 新表名;
7.帮助:? contents , ? 关键字
三、运算符
算术:+ - * / DIV %MOD
比较:> >= < <= <> ,IN (值1,值2...), BETWEEN 值1 AND 值2, IS NULL, IS NOT NULL, LIKE '%_', REGEXP RLIKE
逻辑:NOT AND OR
优先级:()
★四、数据表的DML
1. INSERT INTO 表名[(列名,...)] VALUES(值1,值2...);
2. UPDATE 表名 SET 列名=新值,... WHERE 条件表达式;
3. DELETE FROM 表名 WHERE 条件表达式;
4. SELECT {* | 列名 AS 别名} FROM 表名
WHERE 条件表达式(可能使用逻辑运算符,但不能使用组函数)
GROUP BY 分组的列
HAVING 分组后的条件过滤(组函数:COUNT(*), COUNT(列), SUM(数值列), AVG(数据列), MAX(列),MIN(列))
ORDER BY 排序列[ASC|DESC],...
LIMIT [偏移量,]最大返回的记录数; (数据分页)
5. 多表联接查询
1) 内连接 SELECT 列(可以是所有参与连接的表的列) FROM 表1
[INNER] JOIN 表2
ON 表连接条件
WHERE 条件表达式;
2) 外连接
a)左外连接
SELECT 列 FROM 表1
LEFT [OUT] JOIN 表2
ON 表连接条件
WHERE 条件表达式;
b)右外连接
SELECT 列 FROM 表1
RIGHT [OUT] JOIN 表2
ON 表连接条件
WHERE 条件表达式;
c)全连接
SELECT 列 FROM 表1
FULL JOIN 表2
ON 表连接条件
WHERE 条件表达式;
3) 交叉连接
SELECT 列 FROM 表1
CROSS JOIN 表2;
4) 自连接 自已跟自己做连接 通过取别名
6. 子查询 在SELECT中嵌入了select语句
五、字符集
ascii 128个 美式字符集
iso-8859-1(latin1) 西欧字符集 255个字符
gb2312 7千多个简体汉字
gbk 2万多个汉字 中文常用
utf-8 unicode字符集中最流行的一种实现方式 国际化用它
六、数据库设计 Sybase powerdesigner12.5
CDM 概念模型:来自用户的需求: --在数据建模中用E-R图表示
实体(Entity)-属性(Attribute)
实体之间的关系:一对一、一对多、多对一、多对多
PDM 物理模型:数据库库表设计:
表 - 列(字段)
外键引用
七、事务--一组不可分割的SQL操作
事务的ACID属性:原子性、一致性、隔离性、持久性
MySQL的事务控制:
SET AUTOCOMMIT=0;
sql的操作;
COMMIT; #ROLLBACK;
SET AUTOCOMMIT=1;
八、索引(INDEX) create index 索引名 ON 表名(列(length)...);
九、视图(View)虚表 create view 视图名 AS select语句;
十、存储过程和函数
DELIMITER //
CREATE PROCEDURE 过程名(参数列表) #IN,OUT,INOUT
BEGIN
SQL语句
END //
DELIMITER ;
DELIMITER //
CREATE FUNCTION 函数名(参数列表) RETURNS 返回值类型 #参数名 类型
BEGIN
SQL语句
END //
DELIMITER ;
十一、触发器(trigger)
当某张表上发生特定事件触发的一段SQL程序
CREATE TRIGGER 名
{BEFORE | AFTER}
{INSER | UPDATE | DELETE}
ON 表名
FOR EACH ROW 要触发的SQL语句;
十二、权限管理
GRANT 权限类型
ON 对象类型
TO 用户对象[IDENTIFIED BY '密码']
[WITH GRANT OPTION];
REVOKE 权限类型
ON 对象类型
FROM 用户对象;
DROP USER 用户名;
十三、数据的导入导出
导出: mysqldump.exe命令
例:mysqldump -u 用户名 -p -c 数据库名 > 目的地名
导入: mysql.exe命令
例:mysql -u 用户名 -p 数据库名 < SQL文件名
导入也可以MySQL客户端中进行
mysql> source SQL文件名;