一位初学php的随堂笔记,记录自己的成长!
一.数据库(DataBase DB)
1.数据库:存储数据的仓库
2.数据库分类:
(1)关系型数据库:二维表存储数据(Mysql,SQLServer,Orcale,DB2等)
(2)非关系型数据库(Nosql):MongDB等
3. Mysql安装
(1)window:配置文件 my.ini
进入命令行 开始--运行--cmd
(2)Linux:配置文件:/etc/my.cnf
终端
mysql -uroot -p
说明: Mysql 数据库的存储位置
/var/lib/mysql
4.Mysql登录
mysql -u用户名 -p密码 [-P3306]
[-D数据库名称]
5.Mysql退出
quit
exit
\q
6.Mysql注释
-- 注释
# 注释
7.修改提示符(Prompt)
(1)进入MySQL的命令
prompt 提示符名称
(2)登录MySQL写的命令
mysql -uroot -p --prompt=提示符名称
说明:
a.恢复提示符 prompt mysql>
b.特殊符号
\h 主机名称
\D 系统时间日期
\d 选择数据库名称
8. SQL(Structured Query Language)结构化查询语句
(1)DDL(数据创建语言):创建数据库,创建表
创建视图等
CREATE(创建),DROP(删除),ALTER(修改)
(2)DML(数据操作语言):对数据库的数据的增,
删,改
INSERT(添加),DELETE(删除),UPDATE(改)
(3)DQL(数据查询语言):对数据库的数据查询
SELECT(查询)
(4)DCL(数据库控制语言):分配(GRANT)用户权限
及权限(REVOKE)撤销
9.SQL命令行规范
a.系统命令大写,名称小写
b.SQL命令行以分号结束或 \g
说明:结束分隔符可以用 delimiter 符号名称
c.SQL命令行支持折行,但不能在函数,名称,引号中
不能折行
d.SQL命令中的名称不能用关键字和保留字,
如果使用必须用反引号``括起来,例如 `user`
10.创建数据库(DDL)
(1)查看数据库
SHOW DATABASES;
(2)创建数据库
CREATE DATABASE [IF NOT EXISTS]
数据库名称 [[DEFAULT] CHARACTER
SET [=] 编码];
(3)查看创建数据库命令
SHOW CREATE DATABASE 数据库名称;
(4)删除数据库
DROP DATABASE [IF EXISTS] 数据库名称;
(5)修改数据库的编码
ALTER DATABASE 数据库名称
[DEFAULT] CHARACTER SET [=]编码;
(6)选择数据库
USE 数据库名称;
(7) 查看当前选择的数据库
SELECT DATABASE();
11.创建数据库中的表
(1) 查看表
SHOW TABLES;
(2)创建表结构
CREATE TABLE [IF NOT EXISTS] 表名(
字段(Field)名称|列名称 数据类型 [字段属性|约束条件],
字段(Field)名称|列名称 数据类型 [字段属性|约束条件]
...
)[ENGINE=InnoDB DEFAULT CHARSET=utf8];
说明:数据库最小单位是表,一定是先有表结构
再添加数据
(3)查看表结构
DESC 表名;
DESCRIBE 表名;
SHOW COLUMNS FROM 表名;
(4)查看创建表结构命令
SHOW CREATE TABLE 表名;
12. 数据操作(DML DQL)
(1)插入数据
INSERT 表名(字段1,字段2...)
VALUE[S]
(值,值...),
(值,值...)...;
(2)查询数据:
SELECT * FROM 表名;
SELECT 字段1,字段2,... FROM 表名;
13.MySQL数据类型
(1)整型
TINYINT([M]) [UNSIGNED|ZEROFILL]:
范围:大小1字节(Byte 2^8)
有符号位 -128~127
无符号 0~255
SMALLINT([M]) [UNSIGNED|ZEROFILL]:
范围:大小2字节(Byte 2^16)
有符号位 -32768~32767
无符号 0~65535
MEDIUMINT([M]) [UNSIGNED|ZEROFILL]:
范围:大小3字节(Byte 2^24)
有符号位 -8388608~8388607
无符号 0~16777215
INT([M]) [UNSIGNED|ZEROFILL]:
范围:大小4字节(Byte 2^32)
有符号位 -2147483648~2147483647
无符号 0~4294967295
BIGINT([M]) [UNSIGNED|ZEROFILL]:
范围:大小8字节(Byte 2^64)
说明:
字段属性:
UNSIGNED:无符号位(正数)
ZEROFILL: 当显示的长度小于指定长度
用 0填补,会自动添加UNSIGNED
(2)浮点
a.单精度浮点
FLOAT([M,D]) [UNSIGNED|ZEROFILL]
范围:
-3.40e38 ~3.40e38
b.双精度浮点
DOUBLE([M,D]) [UNSIGNED|ZEROFILL]
-1.79e308 ~1.79e308
c.定长浮点
DECIMAL([M,D])[UNSIGNED|ZEROFILL]
说明:
当指定D小点位数,FLOAT,DOUBLE超出
指定位数会四舍五入存近似值,
DECIMAL超出指定位数,包警告错误
DECIMAL存精确值
(3)字符型
a.CHAR([M]): 定长字符(0-255字节 一个字母占一个字节)
b.VARCHAR([M]):变长字符(0-65535字节)
VARCHAR存储长度受下面情况影响:
(a)一个字段最大65535字节
(b)编码
gbk:至多占2个字节
utf8:至多占3个字节 65532/3 =21844
(c)多个字符型字段中总的长度不能超过
65535(21844)
c.TINYTEXT: 0-255字节
d.TEXT:0-65535字节
e.MEDIUMTEXT:0-16777215字节
f.LONGTEXT:0-4294967295字节
说明: CHAR效率高但不省空间,VARCHAR
效率低但省空间,TEXT效率最低
(4)布尔型
BOOLEAN
TINYINT(1)
(5)枚举类型
ENUM:范围:0-65535字节
例如:
sex ENUM(‘man‘,‘woman‘,‘secret‘);
14.约束条件(1)
NOT NULL:不为空
DEFAULT:默认值
[PRIMARY] KEY:主键,一个表中只能有
一个主键,并且是主键的字段一定
自动添加 NOT NULL 和不重复(UNIQUE)
UNIQUE [KEY]:不重复,一个表中可以有多个
不重复(例如:用户名不重复,邮箱不重复)
AUTO_INCREMENT:自动增长,字段如果是编号当添加
记录(行)时,编号自增,并且
AUTO_INCREMENT的字段一定是主键