mysql (1)

一、数据库的操作
当一台电脑安装了mysql数据库服务,就可以把这台电脑称之为数据库服务器
用户通过在dos窗口中输入:

mysql [-h 连接的主机ip -P端口3306)] -u 用户名 -p 密码
mysql -h 127.0.0.1 -P 3306 -u root -p

在这里插入图片描述
一个数据库服务器可以有多个数据库,一个数据库中可以有多个表(就是一个二维表),一个表中可以有多条数据记录。
在这里插入图片描述

SQL分类
**DDL (**数据定义语言)
用来定义数据库的对象,如数据表、视图、索引等。
create drop alter truncate

DML (数据操纵语言)
在数据库表中更新,增加和删除记录
如 update, insert, delete 不包含查询

DCL (数据控制语言)
指用于设置用户权限和控制事务语句
如grant,revoke,if…else,while,begin transaction

DQL (数据查询语言)(★★★★★)

数据表记录的查询。select

A.数据库操作语句

1、查询当前所有的数据库:
语法: show databases;
2、查看当前数据的创建方式:查看数据库的编码表
语法:show create database 库名;

information_schema数据库:
其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。
performance_schema 数据库:
存储引擎:命名PERFORMANCE_SCHEMA ,主要用于收集数据库服务器性能参数。
mysql 数据库:
mysql库是系统库,里面保存有账户信息,权限信息,存储过程,event,时区等信息。
test 数据库:
这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。

创建数据库
1、create database 数据库名 :由于创建数据库时没有指定编码表,因此会使用安装数据库时默认的编码表
2、create database 数据库名 character set 编码表名; 创建数据库会使用指定的编码表。

删除数据库
语法:drop database 数据库名;

修改数据库编码集
语法:alter database 数据库名称 character set 字符集;

切换数据库:
语法: use 数据库名;

查询当前正在使用的数据库:
语法:select database();

B.数据表的创建语句

create table 表名(
	列名 数据类型,
	列名 数据类型,
	……
	列名 数据类型 (最后一个列不需要逗号)
);

数据类型:
varchar:长度可变
char:长度固定
大数据类型:BLOB 保存的字节数据;TEXT 保存字符数据。
逻辑性 :
mysql中:BIT : 1 或者0组成的数据
日期型
date :日期----只有日期, 年月日
time:时间-----时分秒
dateTime:日期和时间都包含 “yyyy-MM-dd”
timestamp

C.查看表:
show tables : 查看该数据库的所有的表。
show create table 表名 :查看建表语句以及字符集—了解。
desc 表名:查看表的列的信息(查看表结构)
在这里插入图片描述

约束:
限制表中列的内容。需要满足一定的规则。
意义:保证数据的有效性和完整性。可以确保数据库满足业务规则。

主键约束: primary key
作用:设置某一个字段为主键,主键的特性是唯一(不能重复),并且不能为空。一张表中只能有一个主键。

唯一约束: unique
作用:内容不允许重复,可以为null(null不算重复)。 一个表里可以添加多个唯一约束。

非空约束: not null
作用:不允许为空。 表示该列的内容不允许为空。

** D.数据表结构的修改**
语法:alter table 表名 增/删/改 列名 类型(长度) 约束;
1.增加列 语法: alter table 表名 add 列名 类型(长度) 约束;

alter table emp2 add salary double;

2、修改现有列类型、长度和约束
语法:alter table 表名 modify 列名 类型(长度) 约束;

3.修改现有列名称
语法:alter table 表名 change 旧列名 新列名 类型(长度) 约束;

4.删除现有列
语法:alter table 表名 drop 列名 ;

5、修改表名
语法: rename table 旧表名 to 新表名;

6、修改表的字符集
语法:alter table 表名 character set 编码集;

E.数据表的删除
语法:drop table 表名;

F.数据记录的增删改
insert 语句
方式一:全写
语法:insert into 表名 (列名,列名,列名…) values (值,值,值…);
方式二:省略部分列
可以省略部分列名。某一列 有默认值,或者允许为空,才可以省略。
方式三:省略所有的列
insert into 表名 values(值,值,值,值);

update 语句
update 表名 set 列名=值,列名=值… [ where条件语句 ];

delete语句
语法:delete from 表名 [where条件语句]

Truncate 语句
语法 : truncate table 表名:
先删除表,再创建表,就等于将数据全部删除了。

面试题:
1.delete删除表中的数据时没有加where 条件,会删除表中的所有数据,它与truncate 有什么区别?
删除过程不同:truncate 删除数据,过程先将整个表删除,再重新创建
delete 删除数据,逐行删除记录
truncate 效率要好于 delete

语言定义不同
truncate 属于DDL ,delete 属于DML.

DELETE: ・DML语言,可以回退(可以将数据找);可以有条件的删除.
TRUNCATE TABLE: DDL语言,无法回退(不可以将数据找回来),默认所有的表内容都删除,删除速度比delete快。

2.delete from person; 和 drop table person; 有什么区别:
delete from person; 把person表中的所有数据全部删除,但是person的表还存在。
drop table person; 把person数据表从数据库中删除。

数据记录增删改小结 :
新增:
insert into 表名 values(值,值,值……)
insert into 表名(列名1,列名2,列名3….) values(值1,值2,值3……)
insert into 表名(列名2,列名4,列名5….) values(值2,值4,值5……)
修改:
update 表名 set 列名=值,列名=值 where 条件
删除:
delete from 表名 where 条件
如果不加where 条件,就是删除所有的数据。
删除:清空数据
truncate table 表名
通过删除整张表之后再重新创建一张表来达到清空数据的目的。

delete 和 truncate的区别是delete删除的数据在事务管理的情况下还能恢复,而truncate则不能恢复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值