wap网站前台,电子商务网站分析,网站平台方案,影视网页制作素材4#xff0c;DDL:操作数据库
我们先来学习DDL来操作数据库。而操作数据库主要就是对数据库的增删查操作。
4.1 查询
查询所有的数据库
SHOW DATABASES;
运行上面语句效果如下#xff1a; 上述查询到的是的这些数据库是mysql安装好自带的数据库#xff0c;我们以后不要操…4DDL:操作数据库
我们先来学习DDL来操作数据库。而操作数据库主要就是对数据库的增删查操作。
4.1 查询
查询所有的数据库
SHOW DATABASES;
运行上面语句效果如下 上述查询到的是的这些数据库是mysql安装好自带的数据库我们以后不要操作这些数据库。
4.2 创建数据库 创建数据库
CREATE DATABASE 数据库名称;
运行语句效果如下 而在创建数据库的时候我并不知道db1数据库有没有创建直接再次创建名为db1的数据库就会出现错误。 为了避免上面的错误在创建数据库的时候先做判断如果不存在再创建。 创建数据库(判断如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;
运行语句效果如下 从上面的效果可以看到虽然db1数据库已经存在再创建db1也没有报错而创建db2数据库则创建成功。
4.3 删除数据库 删除数据库
DROP DATABASE 数据库名称; 删除数据库(判断如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;
运行语句效果如下 4.4 使用数据库
数据库创建好了要在数据库中创建表得先明确在哪儿个数据库中操作此时就需要使用数据库。 使用数据库
USE 数据库名称; 查看当前使用的数据库
SELECT DATABASE();
运行语句效果如下 5DDL:操作表
操作表也就是对表进行增Create删Retrieve改Update查Delete。
5.1 查询表 查询当前数据库下所有表名称
SHOW TABLES;
我们创建的数据库中没有任何表因此我们进入mysql自带的mysql数据库执行上述语句查看 查询表结构
DESC 表名称;
查看mysql数据库中func表的结构运行语句如下 5.2 创建表 创建表
CREATE TABLE 表名 (字段名1 数据类型1,字段名2 数据类型2,…字段名n 数据类型n
);注意最后一行末尾不能加逗号 知道了创建表的语句那么我们创建创建如下结构的表 create table tb_user (id int,username varchar(20),password varchar(32)
);
运行语句如下 5.3 数据类型
MySQL 支持多种类型可以分为三类 数值 tinyint : 小整数型占一个字节
int 大整数类型占四个字节eg age int
double 浮点类型使用格式 字段名 double(总长度,小数点后保留的位数)eg score double(5,2) 日期 date 日期值。只包含年月日eg birthday date
datetime 混合日期和时间值。包含年月日时分秒 字符串 char 定长字符串。优点存储性能高缺点浪费空间eg name char(10) 如果存储的数据字符个数不足10个也会占10个的空间
varchar 变长字符串。优点节约空间缺点存储性能底eg name varchar(10) 如果存储的数据字符个数不足10个那就数据字符个数是几就占几个的空间 注意其他类型参考资料中的《MySQL数据类型].xlsx》 案例
需求设计一张学生表请注重数据类型、长度的合理性1. 编号2. 姓名姓名最长不超过10个汉字3. 性别因为取值只有两种可能因此最多一个汉字4. 生日取值为年月日5. 入学成绩小数点后保留两位6. 邮件地址最大长度不超过 647. 家庭联系电话不一定是手机号码可能会出现 - 等字符8. 学生状态用数字表示正常、休学、毕业...
语句设计如下
create table student (id int,name varchar(10),gender char(1),birthday date,score double(5,2),email varchar(15),tel varchar(15),status tinyint
);
5.4 删除表 删除表
DROP TABLE 表名; 删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;
运行语句效果如下 5.5 修改表 修改表名
ALTER TABLE 表名 RENAME TO 新的表名;
-- 将表名student修改为stu
alter table student rename to stu; 添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
-- 给stu表添加一列address该字段类型是varchar(50)
alter table stu add address varchar(50); 修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
-- 将stu表中的address字段的类型改为 char(50)
alter table stu modify address char(50); 修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
-- 将stu表中的address字段名改为 addr类型改为varchar(50)
alter table stu change address addr varchar(50); 删除列
ALTER TABLE 表名 DROP 列名;
-- 将stu表中的addr字段 删除
alter table stu drop addr; 6navicat使用
通过上面的学习我们发现在命令行中写sql语句特别不方便尤其是编写创建表的语句我们只能在记事本上写好后直接复制到命令行进行执行。那么有没有刚好的工具提供给我们进行使用呢 有。
6.1 navicat概述 Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。 这套全面的前端工具为数据库管理、开发和维护提供了一款直观而强大的图形界面。 官网 http://www.navicat.com.cn
6.2 navicat安装
参考 : 资料\navicat安装包\navicat_mysql_x86\navicat安装步骤.md
6.3 navicat使用
6.3.1 建立和mysql服务的连接
第一步 点击连接选择MySQL 第二步填写连接数据库必要的信息 以上操作没有问题就会出现如下图所示界面 6.3.2 操作
连接成功后就能看到如下图界面 修改表结构
通过下图操作修改表结构 点击了设计表后即出现如下图所示界面在图中红框中直接修改字段名类型等信息 编写SQL语句并执行
按照如下图所示进行操作即可书写SQL语句并执行sql语句。 7DML
DML主要是对数据进行增insert删delete改update操作。
7.1 添加数据 给指定列添加数据
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…); 给全部列添加数据
INSERT INTO 表名 VALUES(值1,值2,…); 批量添加数据
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;练习
为了演示以下的增删改操作是否操作成功故先将查询所有数据的语句介绍给大家
select * from stu;-- 给指定列添加数据
INSERT INTO stu (id, NAME) VALUES (1, 张三);
-- 给所有列添加数据列名的列表可以省略的
INSERT INTO stu (id,NAME,sex,birthday,score,email,tel,STATUS) VALUES (2,李四,男,1999-11-11,88.88,lisiitcast.cn,13888888888,1);
INSERT INTO stu VALUES (2,李四,男,1999-11-11,88.88,lisiitcast.cn,13888888888,1);
-- 批量添加数据
INSERT INTO stu VALUES (2,李四,男,1999-11-11,88.88,lisiitcast.cn,13888888888,1),(2,李四,男,1999-11-11,88.88,lisiitcast.cn,13888888888,1),(2,李四,男,1999-11-11,88.88,lisiitcast.cn,13888888888,1);7.2 修改数据 修改表数据
UPDATE 表名 SET 列名1值1,列名2值2,… [WHERE 条件] ; 注意 修改语句中如果不加条件则将所有数据都修改 2 练习 将张三的性别改为女 update stu set sex 女 where name 张三; 将张三的生日改为 1999-12-12 分数改为99.99 update stu set birthday 1999-12-12, score 99.99 where name 张三; 注意如果update语句没有加where条件则会将表中所有数据全部修改 update stu set sex 女; 上面语句的执行完后查询到的结果是
7.3 删除数据 删除数据
DELETE FROM 表名 [WHERE 条件] ; 练习
-- 删除张三记录
delete from stu where name 张三;
-- 删除stu表中所有的数据
delete from stu;