MySQL基础知识总结.doc

上传人:hw****26 文档编号:2126089 上传时间:2019-04-29 格式:DOC 页数:32 大小:610KB
下载 相关 举报
MySQL基础知识总结.doc_第1页
第1页 / 共32页
MySQL基础知识总结.doc_第2页
第2页 / 共32页
MySQL基础知识总结.doc_第3页
第3页 / 共32页
MySQL基础知识总结.doc_第4页
第4页 / 共32页
MySQL基础知识总结.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、day15-MySQL数据库1 数据库概念(了解)1.1 什么是数据库数据库就是用来存储和管理数据的仓库!数据库存储数据的优先: 可存储大量数据; 方便检索; 保持数据的一致性、完整性; 安全,可共享; 通过组合分析,可产生新数据。1.2 数据库的发展历程 没有数据库,使用磁盘文件存储数据; 层次结构模型数据库; 网状结构模型数据库; 关系结构模型数据库:使用二维表格来存储数据; 关系-对象模型数据库;MySQL 就是关系型数据库!1.3 常见数据库 Oracle(神喻):甲骨文(最高!) ; DB2:IBM ; SQL Server:微软; Sybase:赛尔斯; MySQL:甲骨文;1.4

2、 理解数据库 RDBMS = 管理员(manager)+仓库(database) database = N 个 table table: 表结构:定义表的列名和列类型! 表记录:一行一行的记录!我们现在所说的数据库泛指“关系型数据库管理系统(RDBMS - Relational database management system) ”,即“ 数据库服务器” 。当我们安装了数据库服务器后,就可以在数据库服务器中创建数据库,每个数据库中还可以包含多张表。数据库表就是一个多行多列的表格。在创建表时,需要指定表的列数,以及列名称,列类型等信息。而不用指定表格的行数,行数是没有上限的。下面是 tab_

3、student 表的结构:当把表格创建好了之后,就可以向表格中添加数据了。向表格添加数据是以行为单位的!下面是 s_student 表的记录:s_id s_name s_age s_sexS_1001 zhangSan 23 maleS_1002 liSi 32 femaleS_1003 wangWu 44 male大家要学会区分什么是表结构,什么是表记录。1.5 应用程序与数据库应用程序使用数据库完成对数据的存储!2 安装 MySQL 数据库2.1 安装 MySQL参考:MySQL 安装图解.doc2.2 MySQL 目录结构MySQL 的数据存储目录为 data,data 目录通常在 C:

4、Documents and SettingsAll UsersApplication DataMySQLMySQL Server 5.1data 位置。在 data 下的每个目录都代表一个数据库。MySQL 的安装目录下: bin 目录中都是可执行文件; my.ini 文件是 MySQL 的配置文件;3 基本命令3.1 启动和关闭 mysql 服务器 启动:net start mysql; 关闭:net stop mysql;在启动 mysql 服务后,打开 windows 任务管理器,会有一个名为 mysqld.exe 的进程运行,所以mysqld.exe 才是 MySQL 服务器程序。3.

5、2 客户端登录退出 mysql在启动 MySQL 服务器后,我们需要使用管理员用户登录 MySQL 服务器,然后来对服务器进行操作。登录 MySQL 需要使用 MySQL 的客户端程序:mysql.exe 登录:mysql -u root -p 123 -h localhost; -u:后面的 root 是用户名,这里使用的是超级管理员 root; -p:后面的 123 是密码,这是在安装 MySQL 时就已经指定的密码; -h:后面给出的 localhost 是服务器主机名,它是可以省略的,例如:mysql -u root -p 123; 退出:quit 或 exit;在登录成功后,打开 w

6、indows 任务管理器,会有一个名为 mysql.exe 的进程运行,所以mysql.exe 是客户端程序。SQL 语句1 SQL 概述1.1 什么是 SQLSQL(Structured Query Language)是“结构化查询语言” ,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server 等。SQ 标准(ANSI/ISO)有: SQL-92:1992 年发布的 SQL 语言标准; SQL:1999:1999 年发布的 SQL 语言标签; SQL:2003:2003 年发布的 SQL 语言标签;这些标准就与 JDK 的版本一样

7、,在新的版本中总要有一些语法的变化。不同时期的数据库对不同标准做了实现。虽然 SQL 可以用在所有关系型数据库中,但很多数据库还都有标准之后的一些语法,我们可以称之为“方言” 。例如 MySQL 中的 LIMIT 语句就是 MySQL 独有的方言,其它数据库都不支持!当然,Oracle 或 SQL Server 都有自己的方言。1.2 语法要求 SQL 语句可以单行或多行书写,以分号结尾; 可以用空格和缩进来来增强语句的可读性; 关键字不区别大小写,建议使用大写;2 分类 DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等; DML(Da

8、ta Manipulation Language):数据操作语言,用来定义数据库记录(数据) ; DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别; DQL(Data Query Language):数据查询语言,用来查询记录(数据) 。3 DDL3.1 基本操作 查看所有数据库名称:SHOW DATABASES; 切换数据库:USE mydb1,切换到 mydb1 数据库;3.2 操作数据库 创建数据库:CREATE DATABASE IF NOT EXISTS mydb1;创建数据库,例如:CREATE DATABASE mydb1,创建一个名

9、为 mydb1 的数据库。如果这个数据已经存在,那么会报错。例如 CREATE DATABASE IF NOT EXISTS mydb1,在名为 mydb1 的数据库不存在时创建该库,这样可以避免报错。 删除数据库:DROP DATABASE IF EXISTS mydb1;删除数据库,例如:DROP DATABASE mydb1,删除名为 mydb1 的数据库。如果这个数据库不存在,那么会报错。DROP DATABASE IF EXISTS mydb1,就算 mydb1 不存在,也不会的报错。 修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8修改

10、数据库 mydb1 的编码为 utf8。注意,在 MySQL 中所有的 UTF-8 编码都不能使用中间的“-”,即 UTF-8 要书写为 UTF8。3.3 数据类型MySQL 与 Java 一样,也有数据类型。MySQL 中数据类型主要应用在列上。常用类型: int:整型 double:浮点型,例如 double(5,2)表示最多 5 位,其中必须有 2 位小数,即最大值为999.99; decimal:泛型型,在表单钱方面使用该类型,因为不会出现精度缺失问题; char:固定长度字符串类型; varchar:可变长度字符串类型; text:字符串类型; blob:字节类型; date:日期类

11、型,格式为:yyyy-MM-dd; time:时间类型,格式为:hh:mm:ss timestamp:时间戳类型;3.4 操作表 创建表:CREATE TABLE 表名(列名 列类型,列名 列类型,.);例如:CREATE TABLE stu(sid CHAR(6),sname VARCHAR(20),age INT,gender VARCHAR(10) );再例如:CREATE TABLE emp(eid CHAR(6),ename VARCHAR(50),age INT,gender VARCHAR(6),birthday DATE,hiredate DATE,salary DECIMAL

12、(7,2),resume VARCHAR(1000); 查看当前数据库中所有表名称:SHOW TABLES; 查看指定表的创建语句:SHOW CREATE TABLE emp,查看 emp 表的创建语句; 查看表结构:DESC emp,查看 emp 表结构; 删除表:DROP TABLE emp,删除 emp 表; 修改表:1. 修改之添加列:给 stu 表添加 classname 列:ALTER TABLE stu ADD (classname varchar(100);2. 修改之修改列类型:修改 stu 表的 gender 列类型为 CHAR(2):ALTER TABLE stu MOD

13、IFY gender CHAR(2);3. 修改之修改列名:修改 stu 表的 gender 列名为 sex:ALTER TABLE stu change gender sex CHAR(2);4. 修改之删除列:删除 stu 表的 classname 列:ALTER TABLE stu DROP classname;5. 修改之修改表名称:修改 stu 表名称为 student:ALTER TABLE stu RENAME TO student;4 DML4.1 插入数据语法:INSERT INTO 表名(列名 1,列名 2, ) VALUES(值 1, 值 2)INSERT INTO st

14、u(sid, sname,age,gender) VALUES(s_1001, zhangSan, 23, male);INSERT INTO stu(sid, sname) VALUES(s_1001, zhangSan);语法:INSERT INTO 表名 VALUES(值 1,值 2,)因为没有指定要插入的列,表示按创建表时列的顺序插入所有列的值:INSERT INTO stu VALUES(s_1002, liSi, 32, female);注意:所有字符串数据必须使用单引用!4.2 修改数据语法:UPDATE 表名 SET 列名 1=值 1, 列名 n=值 n WHERE 条件UPD

15、ATE stu SET sname=zhangSanSan, age=32, gender=female WHERE sid=s_1001;UPDATE stu SET sname=liSi, age=20 WHERE age50 AND gender=male;UPDATE stu SET sname=wangWu, age=30 WHERE age60 OR gender=female;UPDATE stu SET gender=female WHERE gender IS NULLUPDATE stu SET age=age+1 WHERE sname=zhaoLiu;4.3 删除数据语

16、法:DELETE FROM 表名 WHERE 条件DELETE FROM stu WHERE sid=s_1001003BDELETE FROM stu WHERE sname=chenQi OR age 30;DELETE FROM stu;语法:TRUNCATE TABLE 表名TRUNCATE TABLE stu;虽然 TRUNCATE 和 DELETE 都可以删除表的所有记录,但有原理不同。DELETE 的效率没有TRUNCATE 高!TRUNCATE 其实属性 DDL 语句,因为它是先 DROP TABLE,再 CREATE TABLE。而且 TRUNCATE 删除的记录是无法回滚的

17、,但 DELETE 删除的记录是可以回滚的(回滚是事务的知识!) 。5 DCL5.1 创建用户语法:CREATE USER 用户名地址 IDENTIFIED BY 密码;CREATE USER user1localhost IDENTIFIED BY 123;CREATE USER user2% IDENTIFIED BY 123;5.2 给用户授权语法:GRANT 权限 1, , 权限 n ON 数据库.* TO 用户名GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1localhost;GRANT

18、ALL ON mydb1.* TO user2localhost;5.3 撤销授权语法:REVOKE 权限 1, , 权限 n ON 数据库.* FORM 用户名REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1localhost;5.4 查看用户权限语法:SHOW GRANTS FOR 用户名SHOW GRANTS FOR user1localhost;5.5 删除用户语法:DROP USER 用户名DROP USER user1localhost;5.6 修改用户密码语法:USE mysql;UPDATE USER SET PASSWORD=PAS

19、SWORD(密码) WHERE User=用户名 and Host=IP;FLUSH PRIVILEGES;UPDATE USER SET PASSWORD=PASSWORD(1234) WHERE User=user2 and Host=localhost;FLUSH PRIVILEGES;数据查询语法(DQL)DQL 就是数据查询语言,数据库执行 DQL 语句不会对数据进行改变,而是让数据库发送结果集给客户端。语法:SELECT selection_list /*要查询的列名称 */FROM table_list /*要查询的表名称*/WHERE condition /*行条件*/GROU

20、P BY grouping_columns /*对结果分组*/HAVING condition /*分组后的行条件*/ORDER BY sorting_columns /*对结果分组*/LIMIT offset_start, row_count /*结果限定*/创建名: 学生表:stu字段名称 字段类型 说明sid char(6) 学生学号sname varchar(50) 学生姓名age int 学生年龄gender varchar(50) 学生性别CREATE TABLE stu (sid CHAR(6),sname VARCHAR(50),age INT,gender VARCHAR(5

21、0);INSERT INTO stu VALUES(S_1001, liuYi, 35, male);INSERT INTO stu VALUES(S_1002, chenEr, 15, female);INSERT INTO stu VALUES(S_1003, zhangSan, 95, male);INSERT INTO stu VALUES(S_1004, liSi, 65, female);INSERT INTO stu VALUES(S_1005, wangWu, 55, male);INSERT INTO stu VALUES(S_1006, zhaoLiu, 75, female);INSERT INTO stu VALUES(S_1007, sunQi, 25, male);INSERT INTO stu VALUES(S_1008, zhouBa, 45, female);INSERT INTO stu VALUES(S_1009, wuJiu, 85, male);INSERT INTO stu VALUES(S_1010, zhengShi, 5, female);INSERT INTO stu VALUES(S_1011, xxx, NULL, NULL); 雇员表:emp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课程笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。