MySQL数据库基本操作-DDL和DML

1. DDL解释
DDL(Data Definition Language) ,数据定义语言,该语言部分包括以下内容:
对数据库的常用操作
对表结构的常用操作
修改表结构
2. 对数据库的常用操作 

2.1 对表结构的常用操作-创建表
# 创建表
create table [if not exists]表名(
字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名3 类型[(宽度)] [约束条件] [comment '字段说明']
)[表的一些设置];
创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。

 数据类型

数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,使用数 据类型的原则是: 够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间

日期和时间类型

字符串类型 

 2.2 对表结构的常用操作其他操作

2.3 对表结构的常用操作-修改表结构格式

修改表添加列
alter table 表名 add 列名 类型(长度) [约束];
修改列名和类型
alter table 表名 change column 旧列名 新列名 类型(长度) 约束;
修改表删除列.
alter table 表名 drop 列名;
修改表名
rename table 表名 to 新表名;
3. DML基本介绍
DML 是指数据操作语言,英文全称是 Data Manipulation Language ,用来对数据库中表的数据记录进行 更新。关键字:
插入 insert
删除 delete
更新 update

 

 3.1 数据插入
insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...); //向表中插入某些
insert into 表 values (值1,值2,值3...); //向表中插入所有列
3.2 数据修改
update 表名 set 字段名=值,字段名=值...;
update 表名 set 字段名=值,字段名=值... where 条件;
3.3 数据删除
delete from 表名 [where 条件];
truncate table 表名 或者 truncate 表名
Caution
注意: delete truncate 原理不同, delete 只删除内容,而 truncate 类似于 drop table ,可以理解
为是将整个表删除,然后再创建该表;
4. 使用演示
4.1 MySQL的使用演示
1 、查看所有的数据库
show databases;
“information_schema”是 MySQL 系统自带的数据库,主要保存 MySQL 数据库服务器的系统信
息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件 所在的文件夹和系统使
用的 文件夹,等等
“performance_schema”是 MySQL 系统自带的数据库,可以用来监控 MySQL 的各类性能指标。
“sys”数据库是 MySQL 系统自带的数据库,主要作用是以一种更容易被理解的方式展示 MySQL 数
据 库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL 的技术性能。
“mysql”数据库保存了 MySQL 数据库服务器运行时需要的系统信息,比如数据文件夹、当前使用
的 字符集、约束检查信息,等等
为什么 Workbench 里面我们只能看到 “demo” “sys” 2 个数据库呢?
这是因为, Workbench 是图形化的管理工具,主要面向开发人 员, “demo” “sys” 2 个数据库已经够
用 了。如果有特殊需求,比如,需要监控 MySQL 数据库各项性能指标、直接操作 MySQL 数据库系统文
件 等,可以由 DBA 通过 SQL 语句,查看其它的系统数据库。
2 、创建自己的数据库
create database 数据库名;
#创建atguigudb数据库,该名称不能与已经存在的数据库重名。
create database atguigudb;
3 、使用自己的数据库
use 数据库名;
#使用atguigudb数据库
use atguigudb;
说明:如果没有使用 use 语句,后面针对数据库的操作也没有加 数据名 的限定,那么会报 “ERROR 1046 (3D000): No database selected”(没有选择数据库)
使用完 use 语句之后,如果接下来的 SQL 都是针对一个数据库操作的,那就不用重复 use 了,如果要针对 另 一个数据库操作,那么要重新use
4 、查看某个库的所有表格
show tables; #要求前面有use语句
show tables from 数据库名;
5 、创建新的表格
create table 表名称( 字段名 数据类型,
字段名 数据类型
);
说明:如果是最后一个字段,后面就用加逗号,因为逗号的作用是分割每个字段。
create table student(
id int,
name varchar(20) #说名字最长不超过20个字符
);
6 、查看一个表的数据
select * from 数据库表名称;
#查看学生表的数据
select * from student;
7 、添加一条记录
insert into 表名称 values(值列表);
#添加两条记录到student表中
insert into student values(1,'张三');
insert into student values(2,'李四');
报错:
mysql> insert into student values(1,'张三');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name'
at row 1
mysql> insert into student values(2,'李四');
ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'name'
at row 1
mysql> show create table student;
字符集的问题。
8 、查看表的创建信息
show create table 表名称\G
#查看student表的详细创建信息
show create table student\G
#结果如下
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
上面的结果显示 student 的表格的默认字符集是 “latin1” 不支持中文。
9 、查看数据库的创建信息
show create database 数据库名\G
#查看atguigudb数据库的详细创建信息
show create database atguigudb\G
*************************** 1. row ***************************
Database: atguigudb
Create Database: CREATE DATABASE `atguigudb` /*!40100 DEFAULT CHARACTER SET
latin1 */ 1 row in set (0.00 sec)
上面的结果显示 atguigudb 数据库也不支持中文,字符集默认是 latin1
10 、删除表格
drop table 表名称;#删除学生表drop table student;
11 、删除数据库
drop database 数据库名;
#删除atguigudb数据库
drop database atguigudb;
4.2 MySQL的编码设置
MySQL5.7
问题再现:命令行操作 sql 乱码问题
mysql> INSERT INTO t_stu VALUES(1,'张三','男');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'sname'
at row 1
问题解决
步骤 1 :查看编码命令
show variables like 'character_%';
show variables like 'collation_%';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值