数据库的基本语法
数据库的基本语法
MYSQL的字符集设置
如何保证页面不乱码
1.html页面字符集utf-8
2.html声明字符集<meta charset=”utf-8”>
3.css页面字符集utf-8
4.css声明字符集 @charset ‘utf-8’;
5.php页面字符集utf-8
6.php声明字符集
header(content-type:text/html;charset=utf-8);
7.数据库字符集(库字符集/表字符集/字段字符集)
8.PHP-MYSQL连接字符集
mysql> create table charset(id int,name char(30),age tinyint,sex tinyint)engine=myisam defaul charset=utf8;---->引擎、字符集
数据库的数据类型:
整型:
tinyint 微整型 0~255 -128~127 年龄/真假/鞋码。。。
smallint 小整型 0-65535 数值不大的数据
medium 中整型 。。。。
int 整型 大小和PHP一样 一般id使用
bigint 大整形 一般不用
浮点型:
float 单精度浮点型
double 双精度浮点型 一般不用
Decimal 浮点型字符串 用字符串来表示的浮点型,一般用于金融数据
字符串类型:
char 定长的字符类型----有固定长度上限 姓名,国籍 商品
varchar 变长的字符类型----不具有固定长度上限
BLOB 类型 文本类型 用于存储文件数据的类型 图片,视频,音频等。。 一般不存储文件类型,而是存储文件的路径。
TEXT 类型 文本类型 用于存储大型文本数据的类型
VARBINARY 变长的二进制字符串类型
BINARY 定长的二进制字符串类型
布尔类型:
数据库中不存在布尔类型,使用tinyint的0和1来表示布尔值
时间类型:(仅供了解,用整型来存储时间戳)
ENUM 枚举类型 单选按钮
特征:该类型需要预先设置该类型的所有可能值,用户添加的数据仅能在指定的数据中选取一个,否则无法插入数据
Enum(‘男’,’女’)
SET集合类型 多选按钮
特征:该类型需要预先设置该类型的所有可能值,用户添加的数据能在指定的数据中选取一个或多个,否则无法插入
如何操作数据库:
连接到数据库的方式:
集成环f境WAMP
非集成环境
打开虚拟DOS界面
1. 直接找到mysql.exe的路径
C:\Documents and Settings\lamp>D:\wamp\bin\mysql\mysql5.5.24\bin\mysql.exe
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 31
Server version: 5.5.24-log MySQL Community Server (GPL)
2.按照层级关系找到mysql.exe 再输入mysql.exe -h 127.0.0.1 -u root -p
C:\Documents and Settings\lamp>cd..
C:\Documents and Settings>cd..
C:\>d:
D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.24
D:\wamp\bin\mysql\mysql5.5.24>cd bin
D:\wamp\bin\mysql\mysql5.5.24\bin>mysql.exe -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 32
Server version: 5.5.24-log MySQL Community Server (GPL)
3.改变环境变量路径
我的电脑->高级->环境变量->查找
Path %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem更改环境变量path->后面加上mysql.exe目录D:\wamp\bin\mysql\mysql5.5.24\bin; 即可在
虚拟DOS界面输入(mysql或者mysql –uroot -p)
C:\Documents and Settings\lamp>mysql -hlocalhost -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 33
Server version: 5.5.24-log MySQL Community Server (GPL)
Commands end with ; or \g mysql的语句结束符号 ;或者\g
Your MySQL connection id is 5 当前连接MYSQL的id是5
Server version: 5.6.12-log MySQL Community Server (GPL)
当前MYSQL的版本号是5.6.12
数据库操作语句分为2种:
DDL 数据库定义语句 库/表/字段操作
DML 数据库管理语句 管理真实数据
DDL语句:
库操作
查看数据库 SHOW DATABASES;
添加数据库 CREATE DATABASE lamp84;
删除数据库 DROP DATABASE lamp84;
使用库 use lamp84;
查看当前使用库 \s
系统自带的数据库:
information_schema 存储当前mysql中所有的表信息和字段信息等
Mysql 存储当前MYSQL软件的用户信息和权限信息
test 测试使用的\数据库,该库没有任何限制
Cluster 服务器集群信息数据库
修改数据库
没有修改数据库的语句.但是如果要修改数据库(空数据库或者数据库中没有innodb引擎的表),可以直接找到MYSQL软件中的data目录,修改其中数据库名称的文件夹即可
Netstat –an 查看所有端口状态
Nbtscan –r ip/24
表操作
数据库表的操作之前必须有一个选择数据库的操作
使用库 use lamp84;
添加表
CREATE TABLE user(
id int,
name char(30),
age tinyint,
sex tinyint
) ENGINE=myisam DEFAULT CHARSET=utf8;
删除表
DROP TABLE user;
修改表
ALTER TABLE user rename user1;
查看表
SHOW TABLES;
字段操作
查看字段
DESC 表名;
添加字段
ALTER TABLE 表名 ADD 字段 数据类型 [列的完整性约束] [位置参数]
位置参数 : AFTER 字段名 在指定字段名之后
FIRST 在最开始的部分建立
修改字段
格式1:
ALTER TABLE 表名 MODIFY 字段名 字段类型 [列的完整性约束] [位置参数]
格式2:
ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 [列的完整性约束] [位置参数];
注意: 如果要单纯的修改字段的属性,不包括名字,使用MODIFY语句,
如果要修改名称或者修改名称时,还需要需要修改字段属性,推荐使用CHANGE
删除字段
ALTER TABLE 表名 DROP 字段名
列的完整性约束:
null 设定当前字段是否允许添加数据时不传入该字段的值
null 允许不传入数据
not null 必须传入数据(没有默认值的情况下)
default 设定当前字段在用户不传入值的情况下使用的默认值
值为用户定义的数据.
Key 表示当前字段的键类型设置
值:primary key PRI 主键(显示信息)
值:unique UNI 唯一键(显示信息)
Extra 表示字段是否使用自动增长属性
auto_increment 自动增长
DML语句
增删改查操作都属于DML语句.
DQL语句 DML中的查询语句 也称之为DQL语句
增
格式1:
INSERT INTO 表名(字段,字段...) VALUES(值,值...)
格式2
INSERT INTO 表名(字段,字段...) VALUES(值,值...),(值,值...),(值,值...)...
格式3:
INSERT INTO 表名 VALUES(值,值...)
格式4:
INSERT INTO 表名 VALUES(值,值...),(值,值...),(值,值...)...
删
DELETE FROM 表名 [where条件] [排序条件][限制条件]
WHERE 条件语句
WHERE 字段=值
WHERE 字段>值 / 字段<值 /字段>=值 /字段<=值 / 字段<>值
WHERE 字段 in (值,值...)
WHERE 字段 not in (值,值...)
WHERE 字段 between 值1 and 值2 值2>=字段>=值1
WHERE 条件1 and 条件2
WHERE 条件1 or 条件2
WHERE 字段 like ‘%值%’
。。。
[排序条件]
ORDER BY 字段 [排序方式] ,字段 [排序方式]
排序方式: ASC 升序(默认值) DESC 降序
[限制条件]
LIMIT 个数
改
UPDATE 表名 SET 字段名=值,字段名=值.... [where条件] [排序条件][限制条件]
查
1.查询所有数据(仅供测试)
SELECT * FROM 表名
2.查询指定字段的数据
SELECT 字段,字段,字段... FROM 表名 [其他条件]
3.查询不重复数据
SELECT distinct * FROM 表名
4查询不重复的字段
SELECT distinct(字段名) FROM 表名
5.查询指定数量的数据
SELECT 字段,字段,字段...FROM 表名 LIMIT 数量
SELECT 字段,字段,字段...FROM 表名 LIMIT 起始位置,数量
6.数据排序查询
SELECT 字段,字段,... FROM 表名 ORDER BY 字段 [排序方式],字段 [排序方式] ...
7.分组排序查询 配合聚合函数使用
SELECT 聚合函数(字段),字段... FROM 表名 GROUP BY 字段名[排序方式]
group by 语句一般要配合聚合函数使用,单独使用意义不大
8.多表联合查询
SELECT 表1.字段,表2.字段.... FROM 表1,表2 其他条件
例子:
SELECT yuangong.id,yuangong.name,yuangong.price,yuangong.bid,bumen.name FROM yuangong,bumen WHERE yuangong.bid=bumen.id;
AS语法:
SELECT y.id,y.name,y.price,y.bid,b.name FROM yuangong AS y,bumen AS b WHERE y.bid=b.id ;