文章目录
数据库基本操作
创建数据库
create database name;
库选项:数据库相关属性。
字符集:charset,代表当前数据库下所有表储存的数据默认指定的字符集。不指定,则使用DBMS默认的。
校对集:collate校对集。
Eg:create database name charset=utf8
显示数据库
- 显示全部数据库:show databases;
- 显示部分数据库:show databases like “模式”;
模式:匹配一个字符:_,多个字符:% - 查看数据库创建语句:show create databases name;
选择数据库
use databaseName;
修改数据库
修改数据库字符集(库选项)
是否可以修改数据库名字?5.5之前rename命令可以修改,5.5之后不能修改。只能修改库选项:字符集、校对集。
alter database charset=utf8
一般数据库有内容之后就不再修改编码方式。
删除数据库
drop database mydatabase;
删除虽简单,但确保做好安全操作,确保不会删库。
数据表操作
创建数据表
create table name[字段名 字段类型, 字段名 字段类型]
- 先进入到某个具体的数据库。use 数据库名字。
- 将数据挂到数据库下:
表选项:charset,字符集,对自己表有效,级别比数据库的设置高。
复制已有表结构
create table like name;
用途有限,一般用来数据库的迁移。
显示数据表
- 查看所有表show tables;;
- 查看匹配表:show tables like “模式”;
显示表结构
显示表中包含的字段信息:(名字、类型、属性等)
describe 表名;
desc 表名;
show columns from student;
显示表创建语句
show create table name;
mysql 有多种语句结束符:;,;效果形同。\G:上面显示内容的转置。
设置表属性
其实就是设置表选项:engine, charset, collate。
alter table 表名 值选项=值
如果数据库已经确定了,里面有很多数据了,不要轻易修改表选项。
修改表结构
- 修改表名
数据库中数据表名字通常有前缀:取数据库前俩字母。 - 新增字段
alter table 表名 add [colmun] 新字段名 列类型 [列属性] [位置 first/after 字段名]
添加字段后,默认添加到末尾,在最后添加控制符控制字段位置。 - 修改字段名
alter table tableName change 旧字段名 新字段名 类型; - 修改字段类型
alter table tableName modify 字段名 新类型 [新位置]; - 删除字段
alter table 表名 drop 字段名;
删除表结构
drop table 表名 [, 表名]
数据操作
插入
insert into 表名 [字段, 字段] values (值,)
insert into 表名 values (对应表结构的值);
这种语法要插入一个tuple,对应表中所有字段。
查询
- 查询表中全部数据:select * from 表名;
- 查询表中部分字段:select 字段列表 from 表名;字段列表使用
,隔开。 - 简单条件查询数据:select 字段列表 from 表名 where 字段名 θ 值;
删除
delete from 表名 [where 条件]; 如果没有where条件,会删除表中所有数据。
更新
一般修改特定行的某些字段数据。
update 表名 set 字段名 = 新值 [where 条件];如果没有where条件,会更新表中所有数据。
字符集
字符编码概念
字符Character是各种文字和符号的总成,包括个国家文字、标点符号、图形符号。只有人能认出。
字符编码character code就是计算机对各种符号,再计算机中的一种二进制存储代号。
字符集概念
字符集character set是多个字符的集合。常见:ASCII、GB2312、BIG5、Nnicode等。
设置客户端所有字符集
用户通过mysql.exe来操作mysqld.exe,真正的mysql操作时MySQLd.exe执行。如果不指定字符集,MySQL.exe就会使用自己默认的字符集。
解决方案:MySQL.exe客户端进行数据操作之前,先将自己使用的字符集告诉mysqld.exe即可。
简单设置:set names utf8;设置所有编码格式位utf8;
深层原理:
mysql.exe 与mysqld.exe之间的处理关系一共分为三层。
- 客户端传数据给服务端:client
- 服务端返回数据给客户端:server
- 客户端与服务端之间的连接:connection
查看字符集:show variables like ‘character_set%’
查询、设置字符集
要统一character_set_client和character_set_results。设置方法:
- 一次性设置所有字符集:set names ‘gbk’
- set character_set_client=gbk;
- set character_set_connection=gbk;
- set character_set_results=gbk;
数据表中一旦有了数据后,就不要修改编码格式了。
字段类型
整数
| 类型 | 大小 |
|---|---|
| Tinyint | 8位 |
| smallint | 16位 |
| mediumint | 24位 |
| int | 32位 |
| bigint | 64位 |
mysql默认整形为有符号整型。如果需要无符号数:应该写成:tinyint unsigned。
如果让数据显示从左侧填充0,用zerofill。填充0,只能是正整数。
显示长度:数据在显示的时候,到底可以显示多长位。
设置默认补0显示几位:
小数
| 类型 | 精度 |
|---|---|
| float | 4字节存储数据。7位精度, 10^38 |
| double | 8字节存储数据。15位精度 ,10^308 |
| decimal |
基本语法:
- float :不指定小数位的浮点数
- float(M,D):一共存储M个有效数字,其中小数部分占D位。
如果丢失精度,按照四舍五入舍弃。
用户不能插入数据直接超过指定的长度,但是如果是系统仅为导致的,系统可以承担。
可以用科学计数法插入数据:
在本地登录远端mysql,运行mysql时需要加上 -h字段。另外在服务器端的mysql里需要进行授权:grant all privileges on *.* to [email protected]'%' identified by "root";这样的话root用户就可以在任何ip登录,登陆密码是root。