数据库
MYSQL基础语法 学习目标 能够理解数据库的概念能够安装MySQL数据库能够启动,关闭及登录MySQL能够使用SQL语句操作数据库能够使用SQL语句操作表结构能够使用SQL语句进行数据的添加修改和删除的操作(掌握)能够使用SQL语句简单查询数据(掌握) 学习内容 1.数据库的基本知识 目标 能够掌握数据库的概念能够说出常用的数据库 讲解 什么是数据库保存数据的仓库。它体现我们电脑中,就是一个软件或者文件系统。然后把数据都保存这些特殊的文件中,并且需要使用固定的语言(SQL语言/语句)去操作文件中的数据。
数据的存储方式需求:开发一个学生选课系统,学生系统中含有学生信息、老师信息、课程信息。需要将关系和数据进行保存,保存到哪里合适呢?
数据保存在内存
Student s = new Student("张三",18,"上海");Teacher t = new Teacher("锁哥",19,"上海");Course c = new Course("语文",90);new出来的对象存储在堆中.堆是内存中的一小块空间
优点:存储速度快 缺点:断电/程序退出,数据就清除了
数据使用IO流技术保存在硬盘的普通文件中 优点:永久保存 缺点:IO流的查找,增加,修改,删除数据比较麻烦。同时使用IO流技术需要频繁调用系统资源和将系统资源还给系统,这样操作效率比较低
数据保存在数据库 优点:永久保存,通过SQL语句比较方便的操作数据库。是方式一和方式二的结合。可以解决上述两种方式的缺点。
数据库的优点 数据库是按照特定的格式将数据存储在文件中,通过SQL语句可以方便的对大量数据进行增、删、改、查操作,数据库是对大量的信息进行管理的高效的解决方案。
常见数据库 我们开发应用程序的时候,程序中的所有数据,最后都需要保存到专业软件中。这些专业的保存数据的软件我们称为数据库。我们学习数据库,并不是学习如何去开发一个数据库软件,我们学习的是如何使用数据库以及数据库中的数据记录的操作。而数据库软件是由第三方公司研发。
Oracle:它是Oracle公司的大型关系型数据库。系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、安全可靠的。但是它是收费的。 MYSQL:早期由瑞典一个叫MySQL AB公司开发的,后期被sun公司收购,再后期被Oracle收购。体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。MySQL6.x版本也开始收费。 DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中. SQLServer:MicroSoft 公司收费的中型的数据库。C#、等语言常使用。 SyBase:Sybase公司的。 已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。
常用数据库:Java开发应用程序主要使用的数据库:MySQL(5.6)、Oracle、DB2。 在web应用中,使用的最多的就是MySQL数据库,原因如下:
开源、免费功能足够强大,足以应付web应用开发(最高支持千万级别的并发访问) 小结 说出数据库的概念:存储数据的仓库说出常用的数据库:MYSQL, Oracle,DB2 2.关系型数据库在开发软件的时候,软件中的数据之间必然会有一定的关系存在。比如商品和客户之间的关系,一个客户是可以买多种商品,而一种商品是可以被多个客户来购买的。
需要把这些数据保存在数据库中,同时也要维护数据之间的关系,这时就可以直接使用上述的那些数据库。而上述的所有数据库都属于关系型数据库。
关系型数据:设计数据库的时候,需要使用E-R实体关系图来描述。
E-R 是两个单词的首字母,E表示Entity 实体 R表示Relationship 关系。
实体:可以理解成我们Java程序中的一个对象。比如商品,客户等都是一个实体对象。在E-R图中使用 矩形(长方形) 表示。
属性:实体对象中是含有属性的,比如商品名、价格等。针对一个实体中的属性,我们称为这个实体的数据,在E-R图中使用椭圆表示。
关系:实体和实体之间的关系:在E-R图中使用菱形表示。
需求: 使用E-R图描述 客户、商品、订单之间的关系。
3.数据库的安装 目标能够安装mysql数据库软件
讲解安装过程:
1.在今天的资料下有Mysql的安装包,找到如下所示文件后双击
mysql-installer-community-5.6.22.0.msi2.双击之后会出现如下图所示界面,询问是否同意,将我同意的选框勾选上,然后点击next,如下:
3.选择自定义安装,点击下一步
4.根据电脑配置选择要安装的MySql版本,然后点击next
5.如果出现当前界面,则可以配置安装目录,如果出现的不是这个界面请点击Back返回
6.点击back返回后,点击高级选项,配置安装路径,配置成功后点击下一步
说明:安装路径最好不要有中文和空格以及特殊符号。
注意:一定要保证Install Directory和data Directory保存的路径一致,这样才可以保证卸载MySql的时候会很方便。
7.当出现绿色对号时表名安装成功,然后点击下一步
8.开始配置mysql,点击下一步
9.配置MySql开发模式以及端口号相关配置,然后点击下一步
说明:MySql默认端口是3306.这里不要修改,我们访问数据库的时候输入端口号3306即可。
10.设置密码账户信息,然后点击next
11.使用默认配置就可以了,然后点击下一步
12.日志配置
13.点击Execute安装
14.全部画上绿色对勾之后,安装成功点击finish->next->finish
15.配置环境变量,找到MySql的安装目录的bin目录下,将路径复制下来
16.打开电脑的高级设置中的 path 路径,将复制的路径添加进去
小结 MySQL安装过程的步骤: 按照上述一步一步安装即可MySQL端口号是:3306管理员名字:root将mysql的bin目录配置到path环境变量中 4.命令行客户端连接服务器(测试是否安装成功) 目标 能够打开和关闭mysql服务能够连接到mysql 讲解1、打开和关闭mysql服务.
查看windows服务 ,mysql数据库是否启动。
2、连接mysql
MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录
登录格式1:mysql -u用户名 -p密码 例如:
mysql -uroot -p1234在打开的dos窗口中输入mysql -uroot -p命令:
后输入密码方式:
mysql -u root -p下一行输入密码登录格式2:
mysql [-h 连接的主机ip -P端口3306**]** -u 用户名 -p 密码
例如:
mysql -h 192.168.1.251 -P 3306 -u root -p 1234 如果连接的是本机:可以省略 -h -P 主机IP和端口。这样就可以登录mysql数据库了。
退出MySQL:exit
小结 打开和关闭mysql服务?连接到本机的mysql?mysql -uroot -p1234连接到指定主机的mysql? mysql [-h 连接的主机ip -P端口3306**]** -u 用户名 -p 密码 5、图形界面Navicat客户端 目标 能够掌握Navicat的安装能够使用Navicat连接mysql数据库 讲解 在dos窗口中使用sql语句操作mysql数据库相对来说,太麻烦了,我们在实际开发中不会使用dos窗口来操作的,一定要使用可视化工具来操作mysql数据库,而会有多种可视化工具来操作mysql数据库,比如:Navicat、SQLyog等。我们这里使用Navicat可视化工具。
解压和双击双击 安装软件一路下一步安装(注意要记住自己的安装路径!!!)
安装完成后 双击注册机
4.找到Nacicat下的启动软件
5.点击打开后,显示OK 激活成功!
6.然后点击关闭即可。
7.如果是第一次使用,会弹出一个提示框,开机检查更新,我们不需要更新。
8.关闭之后,点击软件左上角的连接按钮,选中MySql:
9.使用Navicat登录数据库
小结 Navicat的安装? 一直下一步使用Navicat连接mysql? 在链接界面输入数据账号,密码,端口号如果ip地址是localhost连接不上数据库,可以使用127.0.0.1尝试 6、卸载1、找到mysql的安装目录:在mysql的安装目录中。找到my.ini 文件。
找到datadir 并且记录路径。
datadir="D:/MySoft/MySql2/data/Data/"说明:
1)datadir路径是用来保存mysql的数据文件的目录,以后我们向Mysql数据库存储的数据都会存放到这个路径;
2)在安装数据库的时候,要求这个路径的下的data文件夹要和数据库在同一文件夹下,这样在卸载的时候会比较方便,直接删除即可。如果没有安装到同一目录,那么找到该data文件夹进行删除;
2、在电脑左下角window图标处-----》右键----》选择控制面板;
3、找到程序和功能;
4、找到Mysql---->卸载mysql
5、删除mysql的安装目录,删除mysql的数据文件目录datadir.第一步中记录的文件目录。
注意:mysql默认的数据文件目录,在ProgramData这个目录下,并且ProgramData这个目录是隐藏目录,需要设置显示隐藏目录。
删除ProgramData下的mysql的相关目录。
6、打开运行窗口-----》输入regedit----》打开注册表-----》删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL文件夹
注意:一般情况下执行前5步即可,如果还不能安装,就执行步骤6,运行regedit,试着删除注册表中的数据,或者也可以使用360或者安全管家清理垃圾试试。
7、服务器与数据库、表、记录的关系 目标能够理解mysql服务器与数据库、表、记录的关系
讲解 实体类与表的对应关系说明:
1、一个数据库软件可以安装多个数据仓库,数据仓库可以简称为数据库,在数据库中创建数据表来保存数据。
2、数据库的一行称为记录,可以理解成java实例化后的一个对象。
3、数据库的一列称为字段,理解成java类中的属性。
4、一个数据仓库中是可以有多张表的。
未来关于数据库我们学习的目标:
1)对数据库进行增删改查(CRUD);(主要对整个数据库进行操作,比如删除一个数据库和增加一个数据库)。create(增) read(查) update(改) delete(删)
2)对数据表结构进行增删改查(CRUD);(主要对整张表,比如删除一张表和增加一张表)。
3)对表中的数据进行增删改查(CRUD);(主要对表中的具体数据,比如删除一个表中的一行记录和增加一行数据)。
注意:关于对数据库表的操作,查询是开发中最难的,也是最重要的;
小结一个数据库软件,可以管理多个数据仓库(数据库)。
一个数据仓库可以管理多张数据表。
每个数据表中可以存储多行数据记录。
提示:每创建一个数据仓库,会在mysql的数据文件目录(data)中多一个文件夹。
8、SQL语句的分类和语法 目标 能够掌握SQL的概念和作用 讲解 什么是SQLStructured Query Language结构化查询语言。SQL语句不依赖于任何平台,对所有的数据库是通用的。学会了SQL语句的使用,可以在任何的数据库使用,但都有特有内容。SQL语句功能强大、简单易学、使用方便。
SQL特点SQL语句是一个非过程性的语言,每一条SQL执行完都会有一个具体的结果出现。多条语句之间没有影响。
过程性语言:例如java。
int a = 10;
int b = 20;
int sum = a +b;
SQL作用SQL语句主要是操作数据库,数据表,数据表中的数据记录。
SQL语句分类SQL是用来存取关系数据库的语言,具有定义、操纵、控制和查询关系型数据库的四方面功能。所以针对四方面功能,我们将SQL进行了分类。
DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库,表,列等。关键字:create drop alter truncate(清空数据记录) show等
DML(Data Manipulation Language)数据操作语言★★★
在数据库表中更新,增加和删除记录。如 update(更新), insert(插入), delete(删除) 不包含查询
DQL(Data Query Language) 数据查询语言★★★★★ 数据表记录的查询。关键字select。
DCL(Data Control Language)数据控制语言(了解)
是用来设置或更改数据库用户或角色权限的语句,如grant(设置权限),revoke(撤销权限),begin transaction等。这个比较少用到。
SQL学习方向我们学习SQL语句的路线:
1、学习SQL数据对数据库的操作;
2、学习SQL语句对数据表整体结构的操作;
3、学习SQL语句对数据表中的数据记录操作(★★★★★);
4、数据仓库中的数据备份和恢复;
SQL通用语法SQL语句可以单行或多行书写,以分号结尾。
可使用空格和缩进来增强语句的可读性。
MySQL数据库的SQL语句不区分大小写,关键字开发中一般大写。
SELECT * FROM student;3种注释 单行注释: – 注释内容 多行注释: /* 注释 */
# 注释内容(mysql特有的单行注释)
小结 SQL的作用?对数据库进行操作的语句,增删改查SQL的分类? DDL:操作数据和表 DML:对表中的记录进行增删改 DQL:对表中的记录进行查询SQL的语法特点? 可以写一行,也可以写成多行,最好是以;结尾 关键字建议大写 可以任意缩进 单行注释: – 开头 # 开头 多行注释: /* */ 9、DDL创建数据库 目标能够掌握创建数据库的三种语法
讲解 创建数据库直接创建数据库
CREATE DATABASE 数据库名;判断是否存在并创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;创建数据库并指定字符集(编码表)
CREATE DATABASE 数据库名 character set 字符集;具体操作:
直接创建数据库db1CREATE DATABASE db1; 判断是否存在并创建数据库db2CREATE DATABASE IF NOT EXISTS db2; 创建数据库db3并指定字符集为gbkCREATE DATABASE db2 CHARACTER SET gbk; 查看数据库 查看所有的数据库 SHOW DATABASES;2. 查看某个数据库的定义信息
SHOW CREATE DATABASE 数据库名; 小结 创建数据库语法:CREATE DATABASE 数据库名;查看有哪些数据库:SHOW DATABASES; 10、DDL修改和删除数据库 目标 能够修改数据库的字符集能够删除数据库 讲解 修改数据库字符集 ALTER 表示修改ALTER DATABASE 数据库 default character set 新的字符集;具体操作:
将db3数据库的字符集改成utf8
ALTER DATABASE db3 DEFAULT CHARACTER SET utf8;注意:如果修改数据库指定的编码表是utf8,记住不能写utf-8.。utf-8 是错误的
(mysql不认识utf-8)。
java中的常用编码 : UTF-8; GBK;GB2312;ISO-8859-1;
对应mysql数据库中的编码: utf8; gbk;gb2312; latin1;
删除数据库 drop --表示删除数据库或表DROP DATABASE 数据库名;具体操作:
删除db2数据库DROP DATABASE db2; 小结 修改数据库的字符集格式?alter database 数据库 character set 新的字符集;删除数据库格式?drop database 数据库名; 11、DDL使用数据库 目标 能够掌握切换数据库语法能够查看正在使用的数据库 讲解查看正在使用的数据库
select -- 查询SELECT DATABASE(); 使用/切换数据库 USE 数据库名;具体操作:
查看正在使用的数据库SELECT DATABASE(); 使用db1数据库USE db1; 小结 DDL语句操作关键字创建create database 数据库名;修改alter database character set 字符集;查看show databases;删除drop database 数据库名;12、DDL创建表 目标 能够掌握SQL创建表 讲解前提先使用某个数据库(db1)
创建表 CREATE TABLE 表名 (字段名1 字段类型1, 字段名2 字段类型2...);建议写成如下格式:
javasepublic class Student{int age;}CREATE TABLE 表名 ( 字段名1 字段类型1, 字段名2 字段类型2);关键字说明:
CREATE -- 表示创建TABLE -- 表示表 MySQL数据类型MySQL中的我们常使用的数据类型如下:
详细的数据类型如下(不建议详细阅读!)
具体操作:
创建student表包含id,name,birthday字段
CREATE TABLE student ( id INT, name VARCHAR(20), birthday DATE); 小结 创建表语句:CREATE TABLE 表名 (字段名 类型, 字段名 字段类型…);常用数据类型:int, double, varchar, date 13、DDL查看表 目标 能够查看某个数据库中的所有表能够查看表结构 讲解查看某个数据库中的所有表
SHOW TABLES;查看表结构
DESC 表名;查看创建表的SQL语句
SHOW CREATE TABLE 表名;具体操作:
查看mysql数据库中的所有表SHOW TABLES; 查看student表的结构DESC student; 查看student的创建表SQL语句SHOW CREATE TABLE student; 小结 查看某个数据库中的所有表:show tables;查看表结构:desc 表名;查看创建表的SQL语句:show create table 表名; 14、DDL删除表 目标 能够掌握删除表语法能够掌握快速创建一个表结构相同的表 讲解 快速创建一个表结构相同的表 CREATE TABLE 表名 LIKE 其他表;具体操作:
创建s1表,s1表结构和student表结构相同
CREATE TABLE s1 LIKE student; 删除表直接删除表
DROP TABLE 表名;判断表是否存在并删除表
DROP TABLE IF EXISTS 表名;具体操作:
直接删除表s1表DROP TABLE s1; 判断表是否存在并删除s1表DROP TABLE IF EXISTS s1; 小结 快速创建一个表结构相同的表:CREATE TABLE 表名 LIKE 其他表;删除表语法:DROP TABLE 表名; 15、DDL修改表结构(了解) 目标能够掌握修改表结构的语法
讲解修改表结构使用不是很频繁,只需要了解,等需要使用的时候再回来查即可
添加表列
ALTER TABLE 表名 ADD 字段名/列名 类型;具体操作:
为学生表添加一个新的字段remark,类型为varchar(20)ALTER TABLE student ADD remark VARCHAR(20);修改列类型
ALTER TABLE 表名 MODIFY 字段名 新的类型;具体操作:
将student表中的remark字段的改成varchar(100)ALTER TABLE student MODIFY remark VARCHAR(100);修改列名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型;具体操作:
将student表中的remark字段名改成intro,类型varchar(30)ALTER TABLE student CHANGE remark intro varchar(30);删除列
ALTER TABLE 表名 DROP 字段名;具体操作:
删除student表中的字段introALTER TABLE student DROP intro;修改表名
RENAME TABLE 旧表名 TO 新表名;具体操作:
将学生表student改名成student2. RENAME TABLE student TO student2;修改字符集
ALTER TABLE 表名 character set 字符集;具体操作:
将sutden2表的编码修改成gbkALTER TABLE student2 character set gbk; 小结 所有修改表前面的语法都是相同的?ALTER TABLE 表名添加一列:add 字段名 类型修改类型:modify 字段名 新的类型修改字段名和类型:change 旧字段名 新字段名 类型删除一列:drop 字段名 16、使用Navicat操作数据库 目标使用navicat操作数据库
讲解 在dos窗口中使用sql语句操作mysql数据库相对来说,太麻烦了,我们在实际开发中不会使用dos窗口来操作的,一定要使用可视化工具Navicat来操作mysql数据库的。而上述我们为了简单熟悉sql语句,所以一直在dos窗口中操作mysql,而接下来我们要在navicat中操作mysql数据库了。
1.简单熟悉下可视化工具navicat。
2.一般的可视化工具,都能从界面看到 数据库-》数据库表-》表数据。
3.在可视化工具中可以编写sql语句运行
查询结果:
4.在可视化工具中给内容添加注释快捷键是:ctrl+/
5.运行选中的行的快捷键 ctrl + shift + r
17、DML插入记录(重点) 目标能够掌握往表中添加记录
讲解创建student表包含id,name,age,birthday,sex,address字段。
CREATE TABLE student ( id INT, name VARCHAR(20), age int, birthday DATE, sex char(2), address varchar(50)); 插入全部字段所有的字段名都写出来
INSERT -- 表示往表里插入记录INSERT INTO 表名 (字段名1, 字段名2...) VALUES (字段值1, 字段值2...);不写字段名
INSERT INTO 表名 VALUES (字段值1, 字段值2...); 插入部分数据 INSERT INTO 表名 (字段名1, 字段名2...) VALUES (字段值1, 字段值2...);没有添加数据的字段会使用NULL
关键字说明
INSERT INTO 表名 – 表示往哪张表中添加数据(字段名1, 字段名2, …) -- 要给哪些字段设置值VALUES (值1, 值2, …); -- 设置具体的值注意:使用 select * from 表名 --查看该表的所有信息。具体操作:
插入部分数据,往学生表中添加 id, name, age, sex数据 INSERT INTO student (id, name, age, sex) VALUES (1, '张三', 20, '男'); 向表中插入所有字段 所有的字段名都写出来 INSERT INTO student (id, name, age, sex, address) VALUES (2, '李四', 23, '女', '广州'); * 不写字段名 ```sql INSERT INTO student VALUES (3, '王五', 18, '男', '北京'); ``` 注意 值与列一一对应。有多少个列,就需要写多少个值。如果某一个列没有值。可以使用null。表示插入空。值的数据类型,与列被定义的数据类型要相匹配。并且值的长度,不能够超过定义的列的长度。字符串:插入字符类型的数据,建议写英文单引号括起来。在mysql中,使用单引号表示字符串date 时间类型的数据也得使用英文单引号括起来: 如’yyyy-MM-dd’,’yyyy/MM/dd’ 小结1.向表中添加一条完整记录: 所有的字段都写出来: INSERT INTO 表名 (字段1, 字段2, …) VALUES (值1, 值2, …);
insert into student(id,name,birthday,sex,address) values(1,"幂幂",'2000-10-10','女','上海');2.不写字段名: INSERT INTO 表名 VALUES (值1, 值2, …);
insert into student values(3,'冰冰',null,'女','北京');3.向表中添加一条记录部分列:必须写字段名,否则不知道添哪个字段. INSERT INTO 表名 (字段1, 字段2, …) VALUES (值1, 值2, …);
insert into student(id,name,address) values(2,'岩岩','湖南'); 18、DML更新表记录 目标能够掌握更新表记录
讲解不带条件修改数据
UPDATE 表名 SET 字段名=新的值,字段名=新的值,..;带条件修改数据
UPDATE 表名 SET 字段名=新的值,字段名=新的值,.. WHERE 条件关键字说明
UPDATE: 表示修改记录 SET: 要改哪个字段WHERE: 设置条件具体操作:
不带条件修改数据,将所有的性别改成女
UPDATE student SET sex='女';带条件修改数据,将id号为2的学生性别改成男
UPDATE student SET sex='男' WHERE id=2; 一次修改多个列,把id为3的学生,年龄改成26岁,address改成北京UPDATE student SET age=26, address='北京' WHERE id=3; 小结 不带条件的更新数据库记录:UPDATE TABLE SET 字段名=新的值;带条件:UPDATE TABLE SET 字段名=新的值 WHERE 条件; 19、DML删除表记录 目标能够掌握删除表记录
讲解不带条件删除数据
DELETE -- 删除记录DELETE FROM 表名;带条件删除数据
DELETE FROM 表名 WHERE 条件;truncate删除表记录
TRUNCATE TABLE 表名;truncate和delete的区别:
delete是将表中的数据一条一条删除truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样具体操作:
带条件删除数据,删除id为3的记录DELETE FROM student WHERE id=3; 不带条件删除数据,删除表中的所有数据DELETE FROM student; 小结 指定条件删除:DELETE FROM 表名 WHERE 条件;没有条件删除所有的记录:DELETE FROM 表名;删除表结构再创建表:TRUNCATE TABLE 表名; 20、DQL没有条件的简单查询 目标能够掌握简单查询
讲解注意:查询不会对数据库中的数据进行修改,只是一种显示数据的方式。
查询表中所有列数据 写出查询每列的名称 SELECT -- 表示查询SELECT 字段名1, 字段名2, ... FROM 表名;具体操作:
SELECT id, name ,age, sex, address FROM student;使用*表示所有列
SELECT * FROM 表名;具体操作:
SELECT * FROM student; 查询表中指定列数据查询指定列的数据,多个列之间以逗号分隔
SELECT 字段名1, 字段名2 FROM 表名;具体操作: 查询student表中的name 和 age 列
SELECT name, age FROM student; 别名查询查询时给列、表指定别名需要使用AS关键字
使用别名的好处是方便观看和处理查询到的数据 SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名; SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名 AS 表别名; 注意:
查询给表取别名目前还看不到效果,需要到多表查询的时候才能体现出好处 AS关键字可以省略
具体操作:
查询sudent表中name 和 age 列,name列的别名为”姓名”,age列的别名为”年龄” SELECT NAME AS 姓名, age AS 年龄 FROM student; 清除重复值查询指定列并且结果不出现重复数据
SELECT DISTINCT 字段名 FROM 表名;具体操作:
查询address列并且结果不出现重复的address SELECT DISTINCT address 城市 FROM student; 查询结果参与运算某列数据和固定值运算
SELECT 列名1 FROM 表名;SELECT 列名1 + 固定值 FROM 表名;某列数据和其他列数据参与运算
SELECT 列名1 + 列名2 FROM 表名;注意: 参与运算的必须是数值类型
需求:
添加数学,英语成绩列,给每条记录添加对应的数学和英语成绩查询的时候将数学和英语的成绩相加实现:
修改student表结构,添加数学和英语成绩列ALTER TABLE student ADD math INT;ALTER TABLE student ADD english INT; 给每条记录添加对应的数学和英语成绩 查询math + english的和SELECT math + english FROM student;结果确实将每条记录的math和english相加,但是效果不好看
查询math + english的和使用别名”总成绩”SELECT math + english 总成绩 FROM student; 查询所有列与math + english的和并使用别名”总成绩”SELECT *, math + english 总成绩 FROM student; 查询姓名、年龄,将每个人的数学增加10分SELECT name, math + 10 FROM student; 小结 简单查询格式:SELECT 字段名,字段名… FROM 表名;定义别名:SELECT 字段名 AS 别名 FROM 表名;去除重复行:SELECT DISTINCT 字段名 FROM 表名;数值列,可以进行计算,不会影响表中数据 DML和简单DQL语句操作关键字添加INSERT INTO 表名 (字段名…) VALUES (值…);修改UPDATE 表名 SET 字段名=新的值 ,字段名=新的值…WHERE 条件;删除DELETE FROM 表名 WHERE 条件; truncate table 表名查询SELETE 字段名,字段名 FROM 表名;21、蠕虫复制 目标了解蠕虫复制
讲解什么是蠕虫复制:在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中 语法格式:
insert into 表名1 select * from 表名2;作用:将表名2中的数据复制到表名1中
具体操作:
创建student2表,student2结构和student表结构一样 create table student2 like student; 将student表中的数据添加到student2表中 insert into student2 select * from student;注意:如果只想复制student表中name,age字段数据到student2表中使用如下格式 insert into student2(name, age) SELECT name, age FROM student;
总结 能够理解数据库的概念 存储数据的仓库能够安装MySQL数据库 一直下一步:解压,复制 配置MYSQL服务器:下一步能够启动,关闭及登录MySQL 在服务里面找到MySql,右键启动/关闭 登录MySQL: mysql -uroot -proot能够使用SQL语句操作数据库 创建数据库: CREATE DATABASE 数据库名; 查看所有数据库: SHOW DATABASES; 删除数据库: DROP DATABASE 数据库名; 切换数据库: USE 数据库名;能够使用SQL语句操作表结构 创建表: CREATE TABLE 表名 (字段名 类型, 字段名 类型, …); 查看所有表: SHOW TABLES; 修改表: ALTER TABLE 表名; 添加一列: ADD 字段名 类型 修改字段类型: MODIFY 字段名 新的类型; 修改字段名: CHANGE 旧字段名 新字段名 新的类型; 删除一列: DROP 字段名; 修改表名: REANME TABLE 表名 TO 新表名 删除表: DROP TABLE 表名;能够使用SQL语句进行数据的添加修改和删除的操作 添加数据: INSERT INTO 表名 (字段名) VALUES (值); 修改数据: UPDATE 表名 SET 字段名=新的值 WHERE 条件; 删除数据: DELETE FROM 表名 WHERE 条件;能够使用SQL语句简单查询数据 SELECT 字段名1, 字段名2, … FROM 表名;数据库-MySQL基础-笔记