1.关系型数据库的特点
1.关系型数据库的组织原则是表格.
2.数据分别存储在一些相关的二维表中.
3.每个表包含某个特定主题的数据.
4.表与表之间是通过主外键关联.
2.MySQL数据库的特点
1.最初开发者为瑞典MySQLAB公司,如今被SUN公司收购,并且开放源码。
2.MySQL是一个小型关系型数据库管理系统。
3.MySQL是一个支持多用户、多线程SQL数据库服务器。
4.使用C和C++编写,支持Linux、Mac 0S、Solaris、Windows等多种操作系统。
3.MySQL中建立用户及权限
1.建立用户:
CREATE USER user_name IDENTIFIED BY password;如:
CREATE USER test IDENTIFIED BY’test’;
2.删除用户:
DROP[user_name];如:
DROP test;
4.MySQL中建立用户及权限
3.赋予用户权限:
GRANT[options]ON[databases]TO[user]IDENTIFIED BY
[password WITH GRANT OPTION;如:
GRANT ALL PRIVILEGES ON.TO‘test’@’%'IDENTIFIED BY test’WITH GRANT OPTION;
4.取消用户权限:
REVOKE[option_1,option 2.……JFROM[user];如:
REVOKE ALL PRIVILEGES,GRANT OPTION FROM test;
5.MySQL中建立数据库、数据表
如:
CREATE TABLE emp(
EMPNO smallint(4)NOT NULL auto_increment,ENAME varchar(10)default NULL,JOB varchar(9)default NULL,MGR bigint(4)default NULL,HIREDATE date default NULL,SAL double(7,2)default NULL,COMM double(7,2)default NULL,DEPTNO smallint(2)default NULL,PRIMARY KEY(EMPNO)
)ENGINE=InnoDB AUTO_INCREMENT=7935 DEFAULT CHARSET=gbk;
ALTER TABLE emp ADD CONSTRAINT fk deptno FOREIGN KEY(deptno)REFERENCES dept(deptno);
6.MySQL中建立数据库、数据表
3.删除数据库:
DROP DATABASE[database_name];如:
CREATE DATABASE test;
4.删除数据表:
DROP TABLE[table_name];如:
DROP TABLE emp;删除数据表时,要注意数据表的主从关系。
7.MySQL中的数据维护
事务(TRANSACTION)为工作的一个逻辑单位,由一个或多个SQL语句组成。一个事务是一个原子单位,构成事务的全部SQL语句的结果可被全部提交或者全部回滚。
1.开始事务:
START TRANSACTION;
2.提交事务:
COMMIT;
3.设置事务自动提交:
SET AUTOCOMMIT=0/1;
0:表示取消自动提交;
1:表示开启自动提交;
4.设置事务回滚点:
SAVEPOINT[rollback_name];如:
SAVEPOINTr_1;
5.回滚事务:
ROLLBACK TO[rollback_name];如:
ROLLBACK TOr_1;
6.释放回滚事务:
RELEASE SAVEPOINT[rollback_name];
7.数据的迁移:
7.1:CREATE TABLE[table_name]AS SELECTFROM
[SEHCMA].[table_name];如:
CREATE TABLE mytable AS SELECTFROM test.emp;**
7.2:
INSERT INTO[table name]SELECTFROM
[SEHCMA].[table_name];如:
insert into emp_1 selectfrom emp;**
8.添加新数据:
INSERT INTO[table_name]VALUES(V_1,V_2.…….V_N);INSERT INTO[table_name](COL_1,COL_2….COL_N)
VALUES(V_1,V_2…….V_N);INSERT INTO[table_name]VALUES(V_1,V_2.…….V_N),
(V_1,V2….V_N),(V_1,V_2….V_N)………
9.更新数据:
UPDATE[table name]SET col name_1=value_1,col name_1
=value_1,col_name_1=value_1……
WHERE[condition];
10.删除数据:
DELETE FROM[table_name];
DELETE FROM[table name]WHERE[condition];
11.删除数据:
TRUNCATE TABLE[table_name];
8.MySQL中的查询语句
1.查询语句:
SELECT[col name1,col_name1,col_name1.……]
FROM[table name]WHERE[condition];
2.数据排序:
ORDER BY ASC/DESC
3.数据的分组:
GROUP BY[col_name]HAVIN[condition]
4.聚合函数:
MAX、MIN、AVG、COUNT、SUM
5.查询中用到的关键字:
LIKE、IN、BETWEEN…AND…、
6.查询中的运算符:
比较运算符和逻辑运算符
7.子查询:
单行子查询、多行子查询、相关子查询
8.连接查询:
自连接查询、内连接查询、(左/右)外连接查询
9.MySQL的数据类型
MySQL的三种主要类型:
数值型、字符型、时间型
UNSIGNED代表无符号。
ZEROFILL 代表为该值添加零。并自动将其变为UNSIGNED
10.视图
语法格式:
CREATE[OR REPLACE]VIEW[模式.]视图名称
AS SELECT 子查询
- REATE VIEW命令的AS子句指定了视图的定义查询,视图的定义查询的结果决定了视图的结构(列和行)。
- OR REPLACE选项允许新视图替换已存在的一个同名视图,这将省去删除旧视图的麻烦。FORCE选项表示强制建立视图,即使在基本表不存在或无权访问基本表的情况下。
- 使用视图的优点
1、为用户提供数据
2、隐藏数据复杂性
3、提高数据安全性
例如:
CREATE OR REPLACE VIEW V_SALESMAN AS SELECTFROM EMP WHERE JOB=‘SALESMAN’;*
更改视图
alter view 视图名
as select 语句
删除视图
drop view 视图名
11.索引的概念
索引是一种数据库对象,它是基于表中的一个列或多个列的值,提供对表进快速访问的一种访问机制。索引的目标是提高存取数据的速度。
优点:
- 可加速联接多个表的查询
- 可用于实施值的唯一性
缺点和使用原则:
- 创建索引要花时间
- 需要额外的存储空间
- 每次修改数据,索引都需更新
- 维护索引需要时间和资源,不应创建不会频繁使用的索引
12.索引的创建
CREATE[UNIQUE]INDEX[schema.]索引名ON{[schema.]表名(column[ASCIDESC]I,column[ASCIDESC]]…)}
- 其中
UNIQUE 定义的是唯一索引确保在定义索引的列中没有重复的值;
MYSQL自动为主键和唯一键列创建唯一索引。 - 例如:
CREATE UNIQUE INDEX ID_STU ON NEW_STU(STUNO);
13.索引的删除
DROP INDEX[schema.]索引名ON表名ALTER TABLE TBALE NAME DROP INDEX INDEX NAME
- 例如:
DROP INDEX ID STU ON STU;ALTER TABLE STU DROP INDEX INDEX NAME