拓展:所知道的数据库:关系型数据库 oracle DB2 SQLServer
MySQL 都比不上上面这些。实际使用功能足够、开源——意味着不收费 企业 运营成本考虑 )
目前: MySql数据库
MySQL.com: 正经的有oracle公司维护 和主权
mariaDB:org: 是由martin维护的开源数据库。
客户端 访问
mysql.exe -h127.0.0.1 -p3306 -uroot -p
数据库 主机名 端口号 用户名 密码
简写:
mysql -u root 超级用户 最高权限 不需要密码
mysql -u root -p 超级用户 直接enter回车进入
原理结构:
Server ==>database ==>table ==>row ==>col
服务器 => 数据库 => 表 => 行 => 列
常见的mysql管理命令:
show databases; #显示服务器上有哪些库
quit;或者exit; #退出数据库
use 库名; #使用指定的库
show tables; #显示当前库中的所有表
desc 表名; 查看当前表的结构

常用的sql语句:
基本语法:
注意:
- 如果数据库中有一行语句出错了,后面的将不会执行
- 注释: 不会被服务器解析执行
- 单行注释: # 被注释的内容
- 多行注释: /*被注释的内容*/
- sql本身不区分大小写, 习惯上 系统一些专用的 关键字 用大写 自己定义的名称 表的具体的内容 可以用小写。
- SHOW DATABASES; 可以
- sHoW DataBases ; 也可以
- drop database if exists 库名; #删除库名的数据库,如果存在的话
- drop database 库名; #直接删除数据库;
- create database 库名 ; # 创建一个数据库
- use 库名 ; #使用数据库
- create table 表名 ; #创建表
- insert into 表名 values(值,值,值) #向表中插入一行数据
- delete from 表名 ; #删除表中的所有行
- delete from 表名 where 条件 ; #删除指定的行
- 修改表中的 数据 只能在原有数据的情况下 才能修改
- updete 表名 set 列=值,列=值 。。。
- updete 表名 set 列=值,列=值 where 条件;
- select * from 表名; # 查看表中的所有数据
- select id,name from 表名; #查看表中的指定数据
sql的两种执行方法:
交互式执行: 输入一行执行一行 仅作为临时查看数据
脚本式执行: 把整个数据库中要执行的代码全部写在一个.sql文件, 一次性提交给服务器 。
mysql -uroot < xxx.sql 直接将.sql文件拖进去, 回车
解决 中文乱码问题 。
- 当前.sql文件必须是 utf-8格式
- .客户端连接服务器时设置编码为 utf8 去掉-
- 数据库存储时也要设置 格式为 utf8
确保三者情况都一致 。

补充:
一、数据类型约束
1.数字类型
TINYINT :微整数 占一个字节 取值范围 -128-127 年龄
SMALLINT:小整数 占2字节 取值 -32768-32767
INT: 整数 占4字节 -2 147 483 648,2 147 483 647
BIGINT 极大整数 占8字节 -2^64-2^64-1
FLOAT (m,d)单精度浮点数 4字节
DOUBLE (m,d) 双精度 8
DECIMAL (m,d) 定点小数 不会产生四舍五入的精度丢失,m表示的是有效位数,
- d表示的是小数点后的有效位数
- ex: DECIMAL(6,2) 999999.99 ? 9999.99?
2.日期和时间
DATE: 日期类型只显示 年月日 ‘’YYYY-MM-DD”
TIME : 显示 时间 “HH:MM:SS”
YEAR 显示年份 ‘’YYYY’’
DATATIME 年月日 时分秒 “YYYY-MM-DD HH:MM:SS”
now() 表示当前系统时间 值根据时间类型来定
ex: date类型 值: 2018-11-26
ex: datatime 值: 2018-11-26 16:19:36
每个时间类型有一个有效值范围和一个”零”值,当指定不合法的MySQL不能表示的值时使用”零”值。
3.字符串类型
CHAR(m) 定长字符串 执行效率高
用在数据值是固定长度的情况: 手机号 身份证号
VARCHAR(m) 变长字符串 使用在数据值不固定长度的情况
BINARY、VARBINARY、BLOB、TEXT、ENUM和SET 参考数据库手册
4.sql本身是没有bool类型的数据 但是支持 boolean值
true –>1 false –>0
可以用bool string number表示
二、列约束
主键约束 — PRIMARY KEY
PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。
补充: 表中的所有数据 会按照主键约束的值的 从小到大的顺序排列 显示能够加快查询速度
唯一约束 –UNIQUE
声明为唯一约束的列, 确保每列数据都是唯一性。但是可以允许出现多个 null值 一个表中是允许有多个唯一性的约束 用户名唯一 手机号唯一 邮箱唯一 。。。
1.sname VARCHAR(15) UNIQUE; 唯一约束
2.UNIQUE(sname,birth) //表示 只有sname birth都相同的情况 才不允许插入
最新评论