MySQL~基础入门知识分析总结.doc
《MySQL~基础入门知识分析总结.doc》由会员分享,可在线阅读,更多相关《MySQL~基础入门知识分析总结.doc(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、-_day15-MySQL数据库数据库1 数据库概念(了解)数据库概念(了解)1.1 什么是数据库数据库就是用来存储和管理存储和管理数据的仓库! 数据库存储数据的优先:-_可存储大量数据; 方便检索; 保持数据的一致性、完整性; 安全,可共享; 通过组合分析,可产生新数据。1.2 数据库的发展历程没有数据库,使用磁盘文件存储数据; 层次结构模型数据库; 网状结构模型数据库; 关系结构模型数据库:使用二维表格来存储数据;关系结构模型数据库:使用二维表格来存储数据; 关系-对象模型数据库;MySQL 就是关系型数据库!1.3 常见数据库Oracle(神喻):甲骨文(最高!) ; DB2:IBM;
2、SQL Server:微软; Sybase:赛尔斯; MySQL:甲骨文;1.4 理解数据库RDBMS = 管理员(manager)+仓库(database) database = N 个 table table: 表结构:定义表的列名和列类型! 表记录:一行一行的记录!我们现在所说的数据库泛指“关系型数据库管理系统(RDBMS - Relational database management system) ” ,即“数据库服务器” 。-_当我们安装了数据库服务器后,就可以在数据库服务器中创建数据库,每个数据库中还可以包 含多张表。数据库表就是一个多行多列的表格。在创建表时,需要指定表的列数
3、,以及列名称,列类型等 信息。而不用指定表格的行数,行数是没有上限的。下面是 tab_student 表的结构:当把表格创建好了之后,就可以向表格中添加数据了。向表格添加数据是以行为单位的!下面 是 s_student 表的记录:s_ids_names_ages_sexS_1001zhangSan23maleS_1002liSi32femaleS_1003wangWu44male大家要学会区分什么是表结构,什么是表记录。-_1.5 应用程序与数据库应用程序使用数据库完成对数据的存储!2 安装安装 MySQL 数据库数据库2.1 安装 MySQL参考:MySQL 安装图解.doc2.2 MySQ
4、L 目录结构MySQL 的数据存储目录为 data,data 目录通常在 C: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 任务管理器,会有一个名为 mysql
5、d.exe 的进程运行,所以 mysqld.exe 才是 MySQL 服务器程序。-_3.2 客户端登录退出 mysql在启动 MySQL 服务器后,我们需要使用管理员用户登录 MySQL 服务器,然后来对服务器进行 操作。登录 MySQL 需要使用 MySQL 的客户端程序:mysql.exe 登录:mysql -u root -p 123 -h localhost; -u:后面的 root 是用户名,这里使用的是超级管理员 root; -p:后面的 123 是密码,这是在安装 MySQL 时就已经指定的密码; -h:后面给出的 localhost 是服务器主机名,它是可以省略的,例如:my
6、sql -u root -p 123; 退出:quit 或 exit;在登录成功后,打开 windows 任务管理器,会有一个名为 mysql.exe 的进程运行,所以 mysql.exe 是客户端程序。SQL 语句语句1SQL 概述概述1.1 什么是 SQLSQL(Structured Query Language)是“结构化查询语言” ,它是对关系型数据库的操作语言。 它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server 等。SQ 标准(ANSI/ISO) 有: SQL-92:1992 年发布的 SQL 语言标准; SQL:1999:1999 年发布的 SQ
7、L 语言标签; SQL:2003:2003 年发布的 SQL 语言标签;这些标准就与 JDK 的版本一样,在新的版本中总要有一些语法的变化。不同时期的数据库对不 同标准做了实现。 虽然 SQL 可以用在所有关系型数据库中,但很多数据库还都有标准之后的一些语法,我们可以 称之为“方言” 。例如 MySQL 中的 LIMIT 语句就是 MySQL 独有的方言,其它数据库都不支持!当然, Oracle 或 SQL Server 都有自己的方言。1.2 语法要求SQL 语句可以单行或多行书写,以分号结尾; 可以用空格和缩进来来增强语句的可读性; 关键字不区别大小写,建议使用大写;-_2 分类分类DDL
8、(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等; DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据) ; DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别; DQL(Data Query Language):数据查询语言,用来查询记录(数据) 。3 DDL3.1 基本操作查看所有数据库名称:SHOW DATABASES; 切换数据库:USE mydb1,切换到 mydb1 数据库;3.2 操作数据库创建数据库:CREATE DATABASE
9、IF NOT EXISTS mydb1; 创建数据库,例如:CREATE DATABASE mydb1,创建一个名为 mydb1 的数据库。如果这个数据 已经存在,那么会报错。例如 CREATE DATABASE IF NOT EXISTS mydb1,在名为 mydb1 的数据库不存 在时创建该库,这样可以避免报错。删除数据库:DROP DATABASE IF EXISTS mydb1; 删除数据库,例如:DROP DATABASE mydb1,删除名为 mydb1 的数据库。如果这个数据库不 存在,那么会报错。DROP DATABASE IF EXISTS mydb1,就算 mydb1 不
10、存在,也不会的报错。修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8 修改数据库 mydb1 的编码为 utf8。注意,在 MySQL 中所有的 UTF-8 编码都不能使用中间的“- ” ,即 UTF-8 要书写为 UTF8。3.3 数据类型MySQL 与 Java 一样,也有数据类型。MySQL 中数据类型主要应用在列上。常用类型: int:整型 double:浮点型,例如 double(5,2)表示最多 5 位,其中必须有 2 位小数,即最大值为 999.99; decimal:泛型型,在表单钱方面使用该类型,因为不会出现精度缺失问题; cha
11、r:固定长度字符串类型; varchar:可变长度字符串类型; text:字符串类型; blob:字节类型; date:日期类型,格式为:yyyy-MM-dd; time:时间类型,格式为:hh:mm:ss timestamp:时间戳类型;-_3.4 操作表创建表: CREATE TABLE 表名(列名 列类型,列名 列类型,. );例如:CREATE TABLE stu( sid CHAR(6), snameVARCHAR(20), ageINT, genderVARCHAR(10) );再例如:CREATE TABLE emp( eidCHAR(6), enameVARCHAR(50),
12、ageINT, genderVARCHAR(6), birthday DATE, hiredate DATE, salaryDECIMAL(7,2), resumeVARCHAR(1000) );查看当前数据库中所有表名称:SHOW TABLES; 查看指定表的创建语句:SHOW CREATE TABLE emp,查看 emp 表的创建语句; 查看表结构:DESC emp,查看 emp 表结构; 删除表:DROP TABLE emp,删除 emp 表; 修改表: 1.修改之添加列:给 stu 表添加 classname 列: ALTER TABLE stu ADD (classname var
13、char(100);2.修改之修改列类型:修改 stu 表的 gender 列类型为 CHAR(2): ALTER TABLE stu MODIFY 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
14、 DML4.1 插入数据语法: INSERT INTO 表名(列名 1,列名 2, ) VALUES(值 1, 值 2)INSERT INTO stu(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, femal
15、e);注意:所有字符串数据必须使用单引用!4.2 修改数据语法: UPDATE 表名 SET 列名 1=值 1, 列名 n=值 n WHERE 条件UPDATE 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=fema
16、le WHERE gender IS NULL UPDATE stu SET age=age+1 WHERE sname=zhaoLiu;4.3 删除数据语法: 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 的效率没有 TRUNCA
17、TE 高! TRUNCATE 其实属性 DDL 语句,因为它是先 DROP TABLE,再 CREATE TABLE。而且 TRUNCATE 删 除的记录是无法回滚的,但 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 用户名
18、GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1localhost;GRANT 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 删除用户语法:
19、DROP USER 用户名DROP USER user1localhost;5.6 修改用户密码语法: USE mysql;UPDATE USER SET PASSWORD=PASSWORD(密码) WHERE User=用户名 and Host=IP; FLUSH PRIVILEGES;UPDATE USER SET PASSWORD=PASSWORD(1234) WHERE User=user2 and Host=localhost;-_FLUSH PRIVILEGES;数据查询语法(数据查询语法(DQL)DQL 就是数据查询语言,数据库执行 DQL 语句不会对数据进行改变,而是让数据库发
20、送结果集 给客户端。 语法: SELECT selection_list /*要查询的列名称*/FROM table_list /*要查询的表名称*/WHERE condition /*行条件*/GROUP BY grouping_columns /*对结果分组*/HAVING condition /*分组后的行条件*/ORDER BY sorting_columns /*对结果分组*/LIMIT offset_start, row_count /*结果限定*/创建名: 学生表:stu字段名称字段名称字段类型字段类型说明说明sidchar(6)学生学号snamevarchar(50)学生姓名a
21、geint学生年龄gendervarchar(50)学生性别CREATE TABLE stu ( sidCHAR(6), snameVARCHAR(50), ageINT, genderVARCHAR(50) );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,
22、 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, zhengS
23、hi, 5, female); INSERT INTO stu VALUES(S_1011, xxx, NULL, NULL);雇员表:emp-_字段名称字段名称字段类型字段类型说明说明empnoint员工编号enamevarchar(50)员工姓名jobvarchar(50)员工工作mgrint领导编号hiredatedate入职日期saldecimal(7,2)月薪commdecimal(7,2)奖金deptnoint部分编号CREATE TABLE emp( empnoINT, enameVARCHAR(50), jobVARCHAR(50), mgrINT, hiredate DATE
24、, salDECIMAL(7,2), commdecimal(7,2), deptnoINT ) ;INSERT INTO emp values(7369,SMITH,CLERK,7902,1980-12-17,800,NULL,20); INSERT INTO emp values(7499,ALLEN,SALESMAN,7698,1981-02-20,1600,300,30); INSERT INTO emp values(7521,WARD,SALESMAN,7698,1981-02-22,1250,500,30); INSERT INTO emp values(7566,JONES,M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 基础 入门 知识 分析 总结
限制150内