4.27MySQL学习内容总结和作业完成

目录

一、学习Mysql的DDL语句(数据库的定义语句) 库的操作

1.查看数据库

2.创建库

 方式1:

 方式2:

3.查询创建数据库的默认字符

4.修改数据库字符

5.删除库

方式1:

方式2:

二、DDL语句(数据库的定义语句)表的操作

1.MySQL数据库常用的数据类型

1)int:整数,默认长度11

2)vaechar:表示字符串类型数据

3)datetime:日期时间,可以指定日期时间

4)tempstamp时间戳(系统当前即时时间)

5)double(几位数,小数点后保留的位数):表示小数类型数据

2.创建表

1)前提条件:使用库

2)创建表

3.查询表

1)查询库中的所有表

2)查询表的结构

4.修改表

1)修改表的字段名称

2)修改表的字段类型

3)给表中新添加一列(一个新的字段名称)

4)将表中的某一列(某个字段)删除

5)复制一张一模一样的表

6)对表名重命名

7)删除表

三、SQLyog图形界面化中操作失去了语句

1.插入表记录

1)MySQL注释

2)创建表

3)查询表的结构

4)插入数据

5)查询表的记录

2.修改表的记录

1)插入一条数据

2)修改表中的记录

3)带多个条件同时修改

3.删除表中指定记录以及全表记录

homework:


一、学习Mysql的DDL语句(数据库的定义语句) 库的操作

1.查看数据库

-- 查询mysql数据库本身在带的所有数据库
-- show database
mysql>show databases;

 运行结果:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |   -- mysql默认的配置库
| mysql              |   -- mysql库---里面有user表,代表当前管理员用户 root用户
| performance_schema |   -- mysql配置库(mysql性能相关的)
| test               |   -- 测试库 里面空表,可以在进行测试练习,创建表,...
+--------------------+
4 rows in set (0.01 sec)

2.创建库

 方式1:

-- 创建库
-- create database 库名; 直接创建库
mysql> create database MyEE_2204;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myee_2204          |        |
| mysql              |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.00 sec)

 方式2:

-- create database if not exists 库名;   如果不存在这个库,创建
mysql> create database MyEE_2204;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myee_2204          |       |
| mysql              |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.00 sec)

3.查询创建数据库的默认字符

-- 查询创建的数据库的默认字符集
-- show create database 库名;
mysql> show create database MyEE_2204;
+-----------+--------------------------------------------------------------------+
| Database  | Create Database                                                    |
+-----------+--------------------------------------------------------------------+
| myee_2204 | CREATE DATABASE `myee_2204` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+-----------+--------------------------------------------------------------------+
1 row in set (0.00 sec)

4.修改数据库字符

gbk:中国的中文表:一个中文对应两个字节

utf8:一个中文对应三个字节,支持中简体

-- 修改数据库的字符集
-- alter database 库名 DEFAULT CHARACTER SET 字符集;
mysql> alter database MyEE_2204 default character set gbk;
Query OK, 1 row affected (0.01 sec)

mysql> show create database MyEE_2204;
+-----------+-------------------------------------------------------------------+
| Database  | Create Database                                                   |
+-----------+-------------------------------------------------------------------+
| myee_2204 | CREATE DATABASE `myee_2204` /*!40100 DEFAULT CHARACTER SET gbk */ |
+-----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)

5.删除库

方式1:

-- 删除库
-- drop database 库名;  直接删除库
mysql> drop database MyEE_2204;
Query OK, 0 rows affected (0.02 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

方式2:

drop database if exists 库名;  判断删除,如果存在库,删除
mysql> drop database if exists MyEE_2204;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

二、DDL语句(数据库的定义语句)表的操作

1.MySQL数据库常用的数据类型

1)int:整数,默认长度11

int:整数,默认长度11
int(),一般指定int即可
int(自定义长度)

2)vaechar:表示字符串类型数据

-- 姓名字段
name varchar(5),-- 姓名最大支持5个字符

3)datetime:日期时间,可以指定日期时间

4)tempstamp时间戳(系统当前即时时间)

5)double(几位数,小数点后保留的位数):表示小数类型数据

2.创建表

1)前提条件:使用库

-- 使用库
-- use 库名;
mysql> use MyEE_2204;
Database changed
mysql>

2)创建表

create table 表名(
	字段名称1 字段类型1,
    字段名称2 字段类型2,
    字段名称3 字段类型3,
    .....,
    ....,
    字段名称n 字段类型 n

) ;

注意:最后一个字段名n 字段类型n不加" , "

mysql> create table staff(
    -> id int,    
    -> name varchar(10), 
    -> gender varchar(5),
    -> birthday varchar(50),
    -> email varchar(50),
    -> remark varchar(50),
    -> age int
    -> );
Query OK, 0 rows affected (0.02 sec)

3.查询表

1)查询库中的所有表

-- 查看库中的所有表
-- show 表名;
mysql> show tables;
+---------------------+
| Tables_in_myee_2204 |
+---------------------+
| staff               |
+---------------------+
1 row in set (0.00 sec)

2)查询表的结构

-- 查询表的结构
-- desc 表名;
mysql> desc staff;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(25) | YES  |     | NULL    |       |
| remark   | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.02 sec)

4.修改表

1)修改表的字段名称

语法:alter  table 表名 change gender 旧字符名称 新字符名称 以前的字段类型;

-- 修改表的字段名称 
-- 语法: alter table 表名 change 旧字段名称 新字段名称 以前的字段类型;
mysql> alter table staff change name username varchar(20) ;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc staff;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(10) | YES  |     | NULL    |       |
| remark   | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.02 sec)

2)修改表的字段类型

语法:alter table 表名 modify 字段名称 新的字段类型;

-- 修改的表的字段类型
-- 语法:alter table 表名 modify 字段名称 新的字段类型;
mysql> alter table staff modify email varchar(20) ;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc staff;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(20) | YES  |     | NULL    |       |
| remark   | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
7 rows in set (0.02 sec)

3)给表中新添加一列(一个新的字段名称)

语法: alter table 表名 add 字段名称 字段类型;


-- 给表中新添加一列(一个新的字段名称)
-- 语法: alter table 表名 add 字段名称 字段类型;
mysql> alter table staff add age int;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc staff;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(20) | YES  |     | NULL    |       |
| remark   | varchar(50) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
7 rows in set (0.02 sec)

4)将表中的某一列(某个字段)删除

语法:alter table 表名 drop 字段名称;

-- 复制一张一模一样的表 
-- 语法: create table 新的表名 like 旧表名;
mysql> alter table staff drop remark ;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc staff;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(20) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.02 sec)

5)复制一张一模一样的表

语法: create table 新的表名 like 旧表名;

-- 复制一张一模一样的表 
-- 语法: create table 新的表名 like 旧表名;
mysql> create table yuangong like staff ;
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+-------------------+
| Tables_in_ee_2204 |
+-------------------+
| staff           |
| yuangong        |
+-------------------+
2 rows in set (0.00 sec)

6)对表名重命名

语法:alter table 旧表名 rename to 新表名;

-- 对表名重命名
-- 语法:alter table 旧表名 rename to 新表名;
mysql> alter table staff rename to sta;
Query OK, 0 rows affected (0.01 sec)

7)删除表

方法1:

语法: drop table 表名;

-- 删除表
-- 语法1: drop table 表名;
mysql> drop table staff;
Query OK, 0 rows affected (0.01 sec)

方法2:

语法:drop table if exists 表名;

-- 删除表
-- 语法2: drop table if exists 表名;
mysql> drop table if exists staff;
Query OK, 0 rows affected (0.01 sec)

三、SQLyog图形界面化中操作失去了语句

1.插入表记录

1)MySQL注释

-- mysql注释 (普通注释:单行注释)
# 注释(特殊注释)
/*
	多行注释
*/

2)创建表

-- 建议命令行的去写

--使用库
USE ee_2204; 
-- 创建表
CREATE TABLE teacher(
	id INT , -- 教师编号
	NAME VARCHAR(20), -- 教师名称
	age INT, -- 教师年龄
	gender VARCHAR(5) -- 性别
);

3)查询表的结构

-- ddl语句:数据库定义语句 查询表的结构
DESC teacher ; 

4)插入数据

语法1

-- 语法1:插入全部字段,给全部字段进行赋值
insert into 表名 values(值1,值2,值3,值4...,值n) ; 一次插入一条

注意:插入的值必须和当前字段顺序要对应,而且还有符号这个字段数据类型 

INSERT INTO student VALUES(1,"张三",'男','鄠邑区','zhangsna@163.com') ; 

语法2

-- 语法2:一次插入多条
insert into 表名 values(值1,值2,值3,值4...,值n),(值1,值2,值3,值4...,值n)
INSERT INTO student VALUES(2,"李四",'男','高陵区','李四@163.com'),
(3,"王五","男","西安市","王五@163.com"),
(4,"赵六","男","西安市","赵六@163.com") ;

语法3

插入部分字段,未插入的字段的默认值就是null

-- insert into 表名(字段名称1,字段名称2,,,) values(值1,值2....) ; 这种写法也支持一次插入多条
INSERT INTO student(id,NAME,sex,address) VALUES(5,"钱七","女","鄠邑区"),
(6,"孙八","男","咸阳市")  ;

5)查询表的记录

-- 查询表的记录  DQL语句 :数据库查询语句 (语法是最多的!)
-- 查询全表 select *(所有字段) from 表名;
SELECT * FROM student ;

注意:-企业中 "禁止"使用*, 必须写全部字段! (自己去使用*,没有问题的!)

2.修改表的记录

1)插入一条数据

INSERT INTO student VALUES(7,'男','王五','西安市','wangwu@163.com') ;

注:上面可以插入成功,因为name和sex都是varchar类型,字符串,但是实际中非法数据,需要修改数据

2)修改表中的记录

一般情况,都是带条件修改   

语法1:update 表名 set 字段名称 = 值 where 字段名称 = xx ; 修改单个字段

实际开发中,每一张表都有 非业务字段--- id 序号,id是唯一的,而且可以有自增长约束

UPDATE student SET NAME = "孙悟空" WHERE id = 6 ;

语法2:修改多个字段值

 update 表名 set 字段名称1 = 值1,字段名称2 = 值2,字段名称3= 值3,...where 字段名称 = xx ;

UPDATE student SET NAME = "王五" ,sex = "男" WHERE id = 7 ;

语法3:一般不用的,批量修改,针对数量比较小的时候

update 表名 set 字段名称= 值; 

UPDATE student SET address = "宝鸡市" ;

3)带多个条件同时修改

update 表名 set 字段名称  = 值 where 条件1 =xx and 条件2 and 条件3.....

UPDATE student 
    SET NAME = '三三' 
    WHERE 
    address = '鄠邑区' 
    AND 
    sex = '男 '
    AND 
    email = 'zhangsan@163.com ;

3.删除表中指定记录以及全表记录

删除表指定的记录,都是带条件删除

语法1: delete from  表名 where 字段名称 = 值; 

DELETE FROM student WHERE id = 7 ;

语法2:TRUNCATE TABLE 表名 ;

TRUNCATE TABLE student ;

区别:

共同点:

都能够删除全表记录

不同点:

delete from 表名:仅仅只是删除全表数据,而不是删除表,如果表中id(非业务字段有自增长约束),不会影响自增长约束!意味着下次插入数据的时候,id继续按上次的id自增.

truncate table 表名:会将表中的全部记录删除并且同时删除表,而且会自动创建一张一模一样的表,它直接影响了自增长约束的值下一次插入数据的时候,自增长id字段从1开始.

自增长约束:id主键并且自增长,id不用给值
INSERT INTO student(NAME,gender,address,email)

-- 创建一个学生表
CREATE TABLE student(
-- -- 非业务字段id 序号 ,PRIMARY KEY 主键(非空且唯一),AUTO_INCREMENT :自增长约束
	id INT PRIMARY KEY AUTO_INCREMENT , 
	NAME VARCHAR(20),
	gender VARCHAR(5), 
	address VARCHAR(20) , 
	email VARCHAR(50) 	
);

homework:

数据库操作的基本语法:表操作语法 

1.创建一个库:MyEE_2204

-- 创建一个库:MyEE_2204
CREATE DATABASE MyEE_2204;

1)创建一个员工表
    字段     属性
    id        整形
    name     字符串(长度为20)
    gender    字符串(长度为2)
    birthday  日期型(date)  ,仅仅是日期
    email       字符串(长度为10)
    remark     字符串(长度为50)

-- 选中MyEE_2204库
USE MyEE_2204;
-- 创建一个员工表staff
CREATE TABLE staff(
	id INT,
	NAME VARCHAR(20),
	gender VARCHAR(2),
	birthday DATE,
	email VARCHAR(10),
	remark VARCHAR(50)
);

 2)修改表练习
    2.1 在员工表基础上增加age列
    2.2 修改email列长度为50
    2.3 删除remark列
    2.4 列名name修改为username
    

-- 添加age列
ALTER TABLE staff ADD age INT;
-- 查询表的记录
SELECT * FROM staff;
-- 修改email列长度为50
ALTER TABLE staff MODIFY email VARCHAR(25);
-- 删除remark列
ALTER TABLE staff DROP remark;
-- 列名name修改为username
ALTER TABLE staff CHANGE NAME username VARCHAR(20);

2.在刚才员工表基础上,进行表记录操作   (提示:插入date字段类型的数据的时候,使用格式为:比如:"2022-4-27")
添加三条员工记录
通过id修改员工记录
通过id删除某员工记录

-- 添加三条员工记录
INSERT INTO staff VALUES(1,"张三","男","1998-4-27","zs@163.com","24"),
(2,"李四","女","1999-6-18","ls@163.com","23"),
(3,"王五","男","1997-10-21","ww@163.com","25");
-- 通过id修改员工记录
UPDATE staff SET birthday="1998-1-21" WHERE id=1;
-- 通过id删除某员工记录
DELETE FROM staff WHERE id=3;

总的代码

-- 创建一个库:MyEE_2204
CREATE DATABASE MyEE_2204;
-- 查询库
SHOW DATABASES;
-- 选中MyEE_2204库
USE MyEE_2204;
-- 创建一个员工表staff
CREATE TABLE staff(
	id INT,
	NAME VARCHAR(20),
	gender VARCHAR(2),
	birthday DATE,
	email VARCHAR(10),
	remark VARCHAR(50)
);
-- 查看表的结构
DESC staff;
-- 添加age列
ALTER TABLE staff ADD age INT;
-- 查询表的记录
SELECT * FROM staff;
-- 修改email列长度为50
ALTER TABLE staff MODIFY email VARCHAR(25);
-- 删除remark列
ALTER TABLE staff DROP remark;
-- 列名name修改为username
ALTER TABLE staff CHANGE NAME username VARCHAR(20);
-- 添加三条员工记录
INSERT INTO staff VALUES(1,"张三","男","1998-4-27","zs@163.com","24"),
(2,"李四","女","1999-6-18","ls@163.com","23"),
(3,"王五","男","1997-10-21","ww@163.com","25");
-- 通过id修改员工记录
UPDATE staff SET birthday="1998-1-21" WHERE id=1;
-- 通过id删除某员工记录
DELETE FROM staff WHERE id=3;

  总结:今日第一次接触MySQL,但英语底子不太好,还需要多敲敲加强记忆.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值