1.数据库概述
1.数据库的概念
- 安装特定格式存储数据的仓库
2.数据存储方式
- 存储在内存中,速度快,易丢失,空间价格高
- 存储在普通文件中,永久保存,但增删改查效率低
- 存储在数据库中,永久保存,且增删改查效率高
3.数据库的优点
- 对大量信息进行管理的高效解决方案
4.命令行连接数据库服务器
- 登录格式1:mysql -u用户名 -p密码
- 登录格式2:**mysql -u用户名 -p回车 密码
- 退出Mysql:exit/quit
5.Mysql服务器目录结构
-
bin:mysql相关的可执行文件*.exe
MySQLInstanceConfig.exe mysql的配置程序
-
data: mysql自带的数据库文件
-
nclude: c语言的头文件
-
lib: 存放mysql使用到的dll动态库
-
my.ini mysql的配置文件,配置了mysql的相关信息
2.SQL语句
1.SQL的概念
- 结构化查询语言
2.SQL的作用
- 操作数据库中的数据、表、数据库(规范)
3.分类
- DDL(数据定义语言):创建、修改和删除数据库和表、列等 关键字:create(创建)、drop(删除)、alter(修改)
- DML(数据操作语言):增加、删除和修改表中数据 关键字:insert(增加)、delete(删除)、update(修改)
- DCL(数据控制语言):定义数据库访问权限和安全级别、创建用户 关键字:grant、revoke…
- TCL(事务控制语言):控制数据库的事务操作 关键字:commit、savepoint、rollback
- DQL(数据查询语言):select
4.通用语法
- SQL可单行或多行书写,可以加分号结尾
- MYSQL不区分大小写,关键字建议大写
- 单行注释:-- # 多行注释:/* */
3.DDL语句
1.数据库创建
- create database 数据库名;(直接创建)
- create database if not exists 数据库名;(非空判断创建)
- create database 数据库名 character set 字符集;(指定字符集创建)
2.数据库查看
- show databases;(查看所有数据库)
- show create database 数据库名;(查看指定数据库定义信息)
3.数据库修改
- alter database 数据库名 character set 字符集;(修改数据库字符集格式)
4.数据库删除
- drop database 数据库名;(删除指定数据库)
5.数据库使用
- select database();(查看正在使用的数据库)
- use 数据库名;(使用指定数据库)
6.表创建
- create table 表名 (字段名1 字段类型1, 字段名2 字段类型2…);
7.MYSQL常用数据类型
- int(整型)(可不指定大小,默认为11)
- double(浮点型)
- varchar(可变字符)
- char(不可变字符)
- date(日期类型)
8.表查看
- show tables;(查看使用数据库所有表)
- desc 表名;(查看表结构)
- show create table 表名(查看创建表的SQL语句)
9.表拷贝
- create table 新表名 like 旧表名;
10.表删除
- drop table 表名;(直接删除表)
- drop table if exists 表名;(存在判断删除表)
11.表列修改
- alter table 表名 add 列名 类型;(表列字段添加)
- alter table 表名 modify 列名 新类型;(更改字段类型)
- alter table 表名 change 旧列名 新列名 新类型;(更改字段名和类型)
- alter table 表名 drop 列名;(删除表字段)
- rename table 表名 to 新表名;(重命名表)
- alter table 表名 character set 字符集(更改表字符集)
4.DML语句
1.表中字段插入
- 完全格式:insert into 表名 (字段名1, 字段名2, 字段名3…) values(值1, 值2, 值3);
- 简化格式(要求给出所有字段值并且顺序一致):insert into表名 values(值1, 值2, 值3…);
- 部分数据插入:insert into表名 (字段1,字段2,…) values(值1, 值2, …);
2.命令行编码问题
- 在命令行输入set names gbk;(单个命令行有效)
3.蠕虫复制
- 创建一个新表,其表结构和数据与另一个表一致
- create table 新表 like 旧表;
- insert into 新表 select * from 旧表;
4.表中字段更新
- update 表名 set 字段名 = 值;(指定字段所有行修改)
- update 表名 set 字段名 = 值 where 筛选条件;(指定字段指定行修改)
5.表中字段删除
- delete from 表名;(删除表中所有字段数据)
- delete from 表名 where 筛选条件;(删除表中指定字段数据)
- truncate table 表名;(摧毁表并创建原表结构的新表)
5.DQL语句
1.查询表中所有列数据
- select * from 表名;
2.查询表中指定列数据
- select 指定列 from 表名;
3.别名查询
- select 字段名1 as 别名, 字段名2 as 别名… from 表名;
- select 字段名1 as 别名, 字段名2 as 别名… from 表名 as 表别名;
4.去重查询
- select distinct 字段名 from 表名;
5.运算查询
- select 列名1+固定值 from 表名;(列数据与固定值运算)
- select 列名1+列名2 from 表名;(列数据与其他列数据运算)
6.比较运算符
>(大于)
<(小于)
<=(小于等于)
>=(大于等于)
=(等于)
<>、!=(不等于)
7.逻辑运算符
and (与)
or (或)
not (非)
in (范围内)
not in(不在范围内)
between 值1 AND 值2(在值之间)