MySQL数据库基础
1.数据库的操作
1.1显示当前的数据库
1.11显示当前的数据库(SQL命令)
show databases;//查看当前数据库的命令 data(数据)
注意点:
1、information_schema、mysql、performance_schema、sys 这四个是MySQL自带的数据库 “系统库”
2、后面加一个s表示复数,表示多个
3、输入命令每个单词之间至少有一个空格(也可以有多个),分号必须是英文分号
4、set这里代表的是集合
1.2创建数据库
create database 数据库名;//这里是创建一个数据库 database没加s 不是复数
注意点:
1.数据库名不能和SQL中的 “关键字” (key word) 重复,但是mysql 也给我们留了一个口子,如果实在是想使用关键字作为数据库名,可以使用反引号,把这个名字引起来。
创建数据库的时候,还可以指定字符集
create database 数据库名 charset 字符集名;
在计算机中,一个汉字,占几个字节? (不确定,看字符集)和字符编码是密切相关的 对于数字来说,数目远远超过ascii字符
当下主流的表示汉字的编码方式,就两种 GBK(使用两个字节表示一个汉字)
UTF-8(变长编码,对于一个汉字来说一般是三个字节,它不仅仅能表示汉字,还能表示世界上的各种语言 )
1.3使用(选中)数据库
后续的进一步操作,都是需要先选中,再操作
use 数据库名;
接下来的操作都是针对这个被选中的数据库进行的 在存在多个数据库的情况下,这样的设定是非常有用的
1.4删除数据库
drop database 数据库名;
2.常用的数据类型
前面谈到的是"数据库操作",表操作才是最核心的
数据库中的表,每一列都有“数据类型”的
2.1数值类型:
2.2字符串类型
1、varchar(size) 可变长的字符串类型 参数表示存储的最大长度
当size为256时 不是说固定占256个字节,可能比256少,不会超过256
varchar 后面的参数数字,单位是“字符”,而不是“字节”;
一个汉字,就是一个字符,可能是多个字节
2、text 这里的长度是靠“自适应”的,比较依赖自动扩容
实际开发中,很多时候明确数据储存的上限,往往会慎重使用test,更多使用varchar
3、mediumtext 要想存储更长的文本,可以考虑使用这个类型,但是还是要慎重使用,针对长文本进行增删改查的时候,效率会比较低!!!
4、blob 是储存二进制数据
前面三个是储存文本数据(字符串)
2.3日期类型
3.表的操作
在进行后续表操作之前,一定要先 use 选中数据库!
use 数据库名;
3.1查看数据库当中的表
show tables;
由于此时没有表在这个数据库里,看到的就是空的集合
不同的数据库,里面包含的表是不一样的
show tables 只能查看当前数据库的表
3.2创建表
create table 表名(列名 类型,列名 类型,列名 类型........);
注意点:
设定表名 / 列名的时候,也是不能和SQL的关键字重复的
如果需要重复,可以用反引号引起来
同一数据库中,表名不能重复(不同数据库就可以了)
3.3查看表结构
desc 表名;
Field (字段)
列 也可以叫做字段
desc 是describe 的缩写
3.4删除表
drop table 表名;
不仅仅是删除表本身,也删除了表里面的数据
4.MySQL创建的数据库/表是存储在系统的哪个地方?
硬盘是从硬件角度来看~~
站在系统的角度,硬盘被抽象成了“文件”
my.ini是MySQL的配置文件(Windows 叫做 my.ini 在Linux 叫做 my.cnf)
用记事本打开
以下这个能找到数据库
5.练习
- 有一个商店的数据,记录客户及购物情况,有以下三个表组成:
1、商品goods(商品编号goods_id,商品名goods_name,单价unitprice,商品类别category,供应商provide)
2、客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证card_id)
3、购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)