删除
drop database 数据库名; --删除一个数据库
---------------------------------------------------
drop table if exists mytab; -- 尝试删除mytab表格
---------------------------------------------------
delete from demo where name='bbb'; --删除一条数据
---------------------------------------------------
truncate table 表名;------清空表中的数据,并将ID的索引指向1,指针重置到1
MySQL
增添
创建数据库
create database 数据库名;
create database [if not exists] 数据库名; --创建数据库
---------------------------------
创建数据库中的表
create table 表名(
字段名1 字段类型(长度有的有) 限制条件 键,
字段名2 字段类型(长度有的有) 限制条件 键,
字段名n 字段类型(长度有的有) 限制条件 键 );
----------------------------------------------------
例如代码如下
create table stu(
ID int unsigned not null auto_increment primary key,
age int zerofill default 18,
name varchar(32) unique,
index nianlig(age) );
----------------------------------------------------
往表里插入数据
insert into 表名 (字段1,字段2,字段n) values (值1,值2,值n);
insert into demo(name,age,sex) values('zhangsan',20,'w');
insert into demo values('lisi',22,'m'); --不指定字段名来添加数据
insert into demo(name,age) values('wangwu',23);指定部分字段名来添加数据
批量添加数据
insert into demo(name,age,sex) values('aaa',21,'w'),("bbb",22,'m');
修改
update demo set age=24 where name='aaa'; --修改
删除
drop database 数据库名; --删除一个数据库
---------------------------------------------------
drop table if exists mytab; -- 尝试删除mytab表格
---------------------------------------------------
delete from demo where name='bbb'; --删除一条数据
---------------------------------------------------
truncate table 表名;------清空表中的数据,并将ID的索引指向1,指针重置到1
查询
查看数据库
show databases;
---------------------------------
查看当前使用的数据库是哪个
select database();
---------------------------------
查看表结构
desc 表名;
----------------------------------------------------
查看当前数据库中的表
show tables;
----------------------------------------------------
select * from demo; --查询数据
----------------------------------------------------
show create table stu --查看建表的语句
----------------------------------------------------
mysql_insert_id — 取得上一步 INSERT 操作产生的 ID
----------------------------------------------------
select * from 表名 where 条件;
select 字段1,字段2 from 表名;
杂项
连接数据库:
mysql -h 主机名 -u 用户名 -p密码 库名
一般用这个 MySQL -u root -p
使用数据库
use 数据库名;
---------------------------------
\h -- 快捷帮助
\c -- 取消命令输入
\s -- 查看当前数据库的状态
\q -- 退出mysql命令行
tee 加上一个路径是将写入命令行的命令导入到一个文件里
cls 清屏
\G 让命令行中的表竖起来
-----------------------------------
MySQL的运算符:
算术运算符:+ - * / %
比较运算符:= > < >= <= <> !=
数据库特有的比较:in,not in, is null,is not null,like, between and
逻辑运算符:and or not
--------------------------------------
表的字段约束:
unsigned 无符号(正数)
zerofill 前导零填充
auto_increment 自增
default 默认值
not null 非空
PRIMARY KEY 主键 (非null并不重复)
unique 唯一性 (可以为null但不重复)
index 常规索引
--------------------------------------
MySQL的数据类型
MySQL的数据类型分为四大类:数值类型、字串类型、日期类型、NULL。
5.1 数值类型:
*tinyint(1字节)
smallint(2字节)
mediumint(3字节)
*int(4字节)
bigint(8字节)
*float(4字节) float(6,2)
*double(8字节)
decimal(自定义)字串形数值
5.2 字串类型
普通字串
*char 定长字串 char(8)
*varchar 可变字串 varchar(8)
二进制类型
tinyblob
blob
mediumblob
longblob
文本类型
tinytext
*text 常用于<textarea></textarea>
mediumtext
longtext
*enum枚举
set集合
5.3 时间和日期类型:
date 年月日
time 时分秒
datatime 年月日时分秒
timestamp 时间戳
year 年
5.4 NULL值
NULL意味着“没有值”或“未知值”
可以测试某个值是否为NULL
不能对NULL值进行算术计算
对NULL值进行算术运算,其结果还是NULL
0或NULL都意味着假,其余值都意味着真
PHP操作数据库(六脉神剑)
操作步骤:
1. 连接MySQL数据库
2. 判断是否连接成功
3. 选择数据库
4. 设置字符集
5. 准备SQL语句
6. 向MySQL服务发送SQL语句
7. 解析处理结果集
8. 释放结果集,关闭数据库连接
二、常用操作:
1. mysql_connect();--连接数据库,并返回一个连接资源
格式: mysql_connect(主机名,用户,密码);
--其中参数可选,若不写则参考php.ini中默认配置
2. mysql_error(); --获取刚刚(最后)执行数据库操作的错误信息
3. mysql_errno(); --获取刚刚(最后)执行数据库操作的错误号
错误号为0表示没有错误
4. mysql_select_db(数据库名[,数据库连接]);
选择一个数据库,等同于"use 库名"语句
5. mysql_set_charset(字符编码); --设置字符编码
例如:mysql_set_charset("utf8"); 等同于:mysql_query("set names utf8");
6. mysql_query(sql语句[,数据库连接]); -- 发送一条sql语句
sql语句若是查询,则返回结果集,其他则返回boolean值表示执行是否成功。
7. 解析结果集函数:
mysql_fetch_array(); --以关联和索引两种方式数组解析结果集
也可以指定第二参数来定义返回格式:
MYSQL_BOTH(0关联和索引)/MYSQL_NUM(2索引)/MYSQL_ASSOC(1关联)
mysql_fetch_row(); --以索引式数组解析结果集
*mysql_fetch_assoc(); --以关联式数组解析结果集
mysql_fetch_object(); --以对象方式解析结果集
8. mysql_free_result(结果集名); --释放结果集
------------------------
mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数
关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。
9. mysql_close(数据库连接); --关闭数据库连接
10. mysql_num_rows(结果集); --获取结果集中的数据条数
准则
需求分析->功能(模块)->数据库设计->找实体、找属性、找关系
数据库创建的准则
数据库内有多个库,库内有多个表,表内有多个字段,字段下有多个值,
数据库分为关系型和非关系型数据库
数据库和数据表存在date目录中,在MySQL目录下
如果遇到了,>这种情况,说明是少打了一个单引号,可以打一个单引号,再加一个分号就能结束这种情况
注意不管是查询还是删除一定要加上条件,查询所有的数据以后数据多了,就不会短时间内出来,要做精确查询,否则一下子会查出所有的信息,删除也是一样,不加条件判断会一下删除所有的信息
非必须掌握部分
MySQL服务器的用户权限管理
=========================================
-- 授权一个用户(zhangsan)密码123,可以对所有的库,所有的表做所有操作。
mysql> grant all on *.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.17 sec)
--刷新生效,否则就要重启MySQL服务才可以。
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
--浏览当前MySQL用户信息
mysql> select user,host,password from mysql.user;
+----------+-----------------+-------------------------------------------+
| user | host | password |
+----------+-----------------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| | localhost | |
| zhangsan | % | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| admin | 192.168.112.132 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+----------+-----------------+-------------------------------------------+
5 rows in set (0.00 sec)
-- 移除一些权限
-- revoke:只删除了用户权限,但没有删除这个用户
mysql> revoke insert,delete on *.* from admin@192.168.112.132 identified by'123';
-- 查看指定用户的权限信息
mysql> show grants for xbb@localhost;
+------------------------------------------------------------------------------------------------------------+
| Grants for xbb@localhost |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xbb'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+------------------------------------------------------------------------------------------------------------+
--drop user:删除了整个用户及其权限(包括数据字典中的数据)
mysql> drop user 'xbb'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| root | localhost |
| root | wangxg |
+------------------+-----------+
4 rows in set (0.00 sec)
一、概念:
数据: data
数据库: DB
数据库管理系统:DBMS
数据库系统:DBS
MySQL:数据库
mysql:客户端命令(用来连接服务或发送sql指令)
SQL:结构化查询语言 ,其中MySQL支持这个。
SQL语言分为4个部分:DDL、DML、DQL、DCL
二、连接数据库:
mysql -h 主机名 -u 用户名 -p密码 库名
C:\>mysql --采用匿名账号和密码登陆本机服务
C:\>mysql -h localhost -u root -p root --采用root账号和root密码登陆本机服务
C:\>mysql -u root -p --推荐方式默认登陆本机
Enter password: ****
C:\>mysql -u root -p lamp61 --直接进入lamp61数据库的方式登陆
三、授权:
格式:grant 允许操作 on 库名.表名 to 账号@来源 identified by '密码';
--实例:创建zhangsan账号,密码123,授权lamp61库下所有表的增/删/改/查数据,来源地不限
mysql> grant select,insert,update,delete on lamp61.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
修改
update demo set age=24 where name='aaa'; --修改
查询
查看数据库
show databases;
---------------------------------
查看当前使用的数据库是哪个
select database();
---------------------------------
查看表结构
desc 表名;
----------------------------------------------------
查看当前数据库中的表
show tables;
----------------------------------------------------
select * from demo; --查询数据
----------------------------------------------------
show create table stu --查看建表的语句
----------------------------------------------------
mysql_insert_id — 取得上一步 INSERT 操作产生的 ID
----------------------------------------------------
select * from 表名 where 条件;
select 字段1,字段2 from 表名;
增添
创建数据库
create database 数据库名;
create database [if not exists] 数据库名; --创建数据库
---------------------------------
创建数据库中的表
create table 表名(
字段名1 字段类型(长度有的有) 限制条件 键,
字段名2 字段类型(长度有的有) 限制条件 键,
字段名n 字段类型(长度有的有) 限制条件 键 );
----------------------------------------------------
例如代码如下
create table stu(
ID int unsigned not null auto_increment primary key,
age int zerofill default 18,
name varchar(32) unique,
index nianlig(age) );
----------------------------------------------------
往表里插入数据
insert into 表名 (字段1,字段2,字段n) values (值1,值2,值n);
insert into demo(name,age,sex) values('zhangsan',20,'w');
insert into demo values('lisi',22,'m'); --不指定字段名来添加数据
insert into demo(name,age) values('wangwu',23);指定部分字段名来添加数据
批量添加数据
insert into demo(name,age,sex) values('aaa',21,'w'),("bbb",22,'m');
杂项
连接数据库:
mysql -h 主机名 -u 用户名 -p密码 库名
一般用这个 MySQL -u root -p
使用数据库
use 数据库名;
---------------------------------
\h -- 快捷帮助
\c -- 取消命令输入
\s -- 查看当前数据库的状态
\q -- 退出mysql命令行
tee 加上一个路径是将写入命令行的命令导入到一个文件里
cls 清屏
\G 让命令行中的表竖起来
-----------------------------------
MySQL的运算符:
算术运算符:+ - * / %
比较运算符:= > < >= <= <> !=
数据库特有的比较:in,not in, is null,is not null,like, between and
逻辑运算符:and or not
--------------------------------------
表的字段约束:
unsigned 无符号(正数)
zerofill 前导零填充
auto_increment 自增
default 默认值
not null 非空
PRIMARY KEY 主键 (非null并不重复)
unique 唯一性 (可以为null但不重复)
index 常规索引
--------------------------------------
MySQL的数据类型
MySQL的数据类型分为四大类:数值类型、字串类型、日期类型、NULL。
5.1 数值类型:
*tinyint(1字节)
smallint(2字节)
mediumint(3字节)
*int(4字节)
bigint(8字节)
*float(4字节) float(6,2)
*double(8字节)
decimal(自定义)字串形数值
5.2 字串类型
普通字串
*char 定长字串 char(8)
*varchar 可变字串 varchar(8)
二进制类型
tinyblob
blob
mediumblob
longblob
文本类型
tinytext
*text 常用于<textarea></textarea>
mediumtext
longtext
*enum枚举
set集合
5.3 时间和日期类型:
date 年月日
time 时分秒
datatime 年月日时分秒
timestamp 时间戳
year 年
5.4 NULL值
NULL意味着“没有值”或“未知值”
可以测试某个值是否为NULL
不能对NULL值进行算术计算
对NULL值进行算术运算,其结果还是NULL
0或NULL都意味着假,其余值都意味着真
PHP操作数据库(六脉神剑)
操作步骤:
1. 连接MySQL数据库
2. 判断是否连接成功
3. 选择数据库
4. 设置字符集
5. 准备SQL语句
6. 向MySQL服务发送SQL语句
7. 解析处理结果集
8. 释放结果集,关闭数据库连接
二、常用操作:
1. mysql_connect();--连接数据库,并返回一个连接资源
格式: mysql_connect(主机名,用户,密码);
--其中参数可选,若不写则参考php.ini中默认配置
2. mysql_error(); --获取刚刚(最后)执行数据库操作的错误信息
3. mysql_errno(); --获取刚刚(最后)执行数据库操作的错误号
错误号为0表示没有错误
4. mysql_select_db(数据库名[,数据库连接]);
选择一个数据库,等同于"use 库名"语句
5. mysql_set_charset(字符编码); --设置字符编码
例如:mysql_set_charset("utf8"); 等同于:mysql_query("set names utf8");
6. mysql_query(sql语句[,数据库连接]); -- 发送一条sql语句
sql语句若是查询,则返回结果集,其他则返回boolean值表示执行是否成功。
7. 解析结果集函数:
mysql_fetch_array(); --以关联和索引两种方式数组解析结果集
也可以指定第二参数来定义返回格式:
MYSQL_BOTH(0关联和索引)/MYSQL_NUM(2索引)/MYSQL_ASSOC(1关联)
mysql_fetch_row(); --以索引式数组解析结果集
*mysql_fetch_assoc(); --以关联式数组解析结果集
mysql_fetch_object(); --以对象方式解析结果集
8. mysql_free_result(结果集名); --释放结果集
------------------------
mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数
关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。
9. mysql_close(数据库连接); --关闭数据库连接
10. mysql_num_rows(结果集); --获取结果集中的数据条数
准则
需求分析->功能(模块)->数据库设计->找实体、找属性、找关系
数据库创建的准则
数据库内有多个库,库内有多个表,表内有多个字段,字段下有多个值,
数据库分为关系型和非关系型数据库
数据库和数据表存在date目录中,在MySQL目录下
如果遇到了,>这种情况,说明是少打了一个单引号,可以打一个单引号,再加一个分号就能结束这种情况
注意不管是查询还是删除一定要加上条件,查询所有的数据以后数据多了,就不会短时间内出来,要做精确查询,否则一下子会查出所有的信息,删除也是一样,不加条件判断会一下删除所有的信息
非必须掌握部分
MySQL服务器的用户权限管理
=========================================
-- 授权一个用户(zhangsan)密码123,可以对所有的库,所有的表做所有操作。
mysql> grant all on *.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.17 sec)
--刷新生效,否则就要重启MySQL服务才可以。
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
--浏览当前MySQL用户信息
mysql> select user,host,password from mysql.user;
+----------+-----------------+-------------------------------------------+
| user | host | password |
+----------+-----------------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| | localhost | |
| zhangsan | % | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| admin | 192.168.112.132 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+----------+-----------------+-------------------------------------------+
5 rows in set (0.00 sec)
-- 移除一些权限
-- revoke:只删除了用户权限,但没有删除这个用户
mysql> revoke insert,delete on *.* from admin@192.168.112.132 identified by'123';
-- 查看指定用户的权限信息
mysql> show grants for xbb@localhost;
+------------------------------------------------------------------------------------------------------------+
| Grants for xbb@localhost |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xbb'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+------------------------------------------------------------------------------------------------------------+
--drop user:删除了整个用户及其权限(包括数据字典中的数据)
mysql> drop user 'xbb'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| root | localhost |
| root | wangxg |
+------------------+-----------+
4 rows in set (0.00 sec)
一、概念:
数据: data
数据库: DB
数据库管理系统:DBMS
数据库系统:DBS
MySQL:数据库
mysql:客户端命令(用来连接服务或发送sql指令)
SQL:结构化查询语言 ,其中MySQL支持这个。
SQL语言分为4个部分:DDL、DML、DQL、DCL
二、连接数据库:
mysql -h 主机名 -u 用户名 -p密码 库名
C:\>mysql --采用匿名账号和密码登陆本机服务
C:\>mysql -h localhost -u root -p root --采用root账号和root密码登陆本机服务
C:\>mysql -u root -p --推荐方式默认登陆本机
Enter password: ****
C:\>mysql -u root -p lamp61 --直接进入lamp61数据库的方式登陆
三、授权:
格式:grant 允许操作 on 库名.表名 to 账号@来源 identified by '密码';
--实例:创建zhangsan账号,密码123,授权lamp61库下所有表的增/删/改/查数据,来源地不限
mysql> grant select,insert,update,delete on lamp61.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
drop database 数据库名; --删除一个数据库
---------------------------------------------------
drop table if exists mytab; -- 尝试删除mytab表格
---------------------------------------------------
delete from demo where name='bbb'; --删除一条数据
---------------------------------------------------
truncate table 表名;------清空表中的数据,并将ID的索引指向1,指针重置到1
MySQL
增添
创建数据库
create database 数据库名;
create database [if not exists] 数据库名; --创建数据库
---------------------------------
创建数据库中的表
create table 表名(
字段名1 字段类型(长度有的有) 限制条件 键,
字段名2 字段类型(长度有的有) 限制条件 键,
字段名n 字段类型(长度有的有) 限制条件 键 );
----------------------------------------------------
例如代码如下
create table stu(
ID int unsigned not null auto_increment primary key,
age int zerofill default 18,
name varchar(32) unique,
index nianlig(age) );
----------------------------------------------------
往表里插入数据
insert into 表名 (字段1,字段2,字段n) values (值1,值2,值n);
insert into demo(name,age,sex) values('zhangsan',20,'w');
insert into demo values('lisi',22,'m'); --不指定字段名来添加数据
insert into demo(name,age) values('wangwu',23);指定部分字段名来添加数据
批量添加数据
insert into demo(name,age,sex) values('aaa',21,'w'),("bbb",22,'m');
修改
update demo set age=24 where name='aaa'; --修改
删除
drop database 数据库名; --删除一个数据库
---------------------------------------------------
drop table if exists mytab; -- 尝试删除mytab表格
---------------------------------------------------
delete from demo where name='bbb'; --删除一条数据
---------------------------------------------------
truncate table 表名;------清空表中的数据,并将ID的索引指向1,指针重置到1
查询
查看数据库
show databases;
---------------------------------
查看当前使用的数据库是哪个
select database();
---------------------------------
查看表结构
desc 表名;
----------------------------------------------------
查看当前数据库中的表
show tables;
----------------------------------------------------
select * from demo; --查询数据
----------------------------------------------------
show create table stu --查看建表的语句
----------------------------------------------------
mysql_insert_id — 取得上一步 INSERT 操作产生的 ID
----------------------------------------------------
select * from 表名 where 条件;
select 字段1,字段2 from 表名;
杂项
连接数据库:
mysql -h 主机名 -u 用户名 -p密码 库名
一般用这个 MySQL -u root -p
使用数据库
use 数据库名;
---------------------------------
\h -- 快捷帮助
\c -- 取消命令输入
\s -- 查看当前数据库的状态
\q -- 退出mysql命令行
tee 加上一个路径是将写入命令行的命令导入到一个文件里
cls 清屏
\G 让命令行中的表竖起来
-----------------------------------
MySQL的运算符:
算术运算符:+ - * / %
比较运算符:= > < >= <= <> !=
数据库特有的比较:in,not in, is null,is not null,like, between and
逻辑运算符:and or not
--------------------------------------
表的字段约束:
unsigned 无符号(正数)
zerofill 前导零填充
auto_increment 自增
default 默认值
not null 非空
PRIMARY KEY 主键 (非null并不重复)
unique 唯一性 (可以为null但不重复)
index 常规索引
--------------------------------------
MySQL的数据类型
MySQL的数据类型分为四大类:数值类型、字串类型、日期类型、NULL。
5.1 数值类型:
*tinyint(1字节)
smallint(2字节)
mediumint(3字节)
*int(4字节)
bigint(8字节)
*float(4字节) float(6,2)
*double(8字节)
decimal(自定义)字串形数值
5.2 字串类型
普通字串
*char 定长字串 char(8)
*varchar 可变字串 varchar(8)
二进制类型
tinyblob
blob
mediumblob
longblob
文本类型
tinytext
*text 常用于<textarea></textarea>
mediumtext
longtext
*enum枚举
set集合
5.3 时间和日期类型:
date 年月日
time 时分秒
datatime 年月日时分秒
timestamp 时间戳
year 年
5.4 NULL值
NULL意味着“没有值”或“未知值”
可以测试某个值是否为NULL
不能对NULL值进行算术计算
对NULL值进行算术运算,其结果还是NULL
0或NULL都意味着假,其余值都意味着真
PHP操作数据库(六脉神剑)
操作步骤:
1. 连接MySQL数据库
2. 判断是否连接成功
3. 选择数据库
4. 设置字符集
5. 准备SQL语句
6. 向MySQL服务发送SQL语句
7. 解析处理结果集
8. 释放结果集,关闭数据库连接
二、常用操作:
1. mysql_connect();--连接数据库,并返回一个连接资源
格式: mysql_connect(主机名,用户,密码);
--其中参数可选,若不写则参考php.ini中默认配置
2. mysql_error(); --获取刚刚(最后)执行数据库操作的错误信息
3. mysql_errno(); --获取刚刚(最后)执行数据库操作的错误号
错误号为0表示没有错误
4. mysql_select_db(数据库名[,数据库连接]);
选择一个数据库,等同于"use 库名"语句
5. mysql_set_charset(字符编码); --设置字符编码
例如:mysql_set_charset("utf8"); 等同于:mysql_query("set names utf8");
6. mysql_query(sql语句[,数据库连接]); -- 发送一条sql语句
sql语句若是查询,则返回结果集,其他则返回boolean值表示执行是否成功。
7. 解析结果集函数:
mysql_fetch_array(); --以关联和索引两种方式数组解析结果集
也可以指定第二参数来定义返回格式:
MYSQL_BOTH(0关联和索引)/MYSQL_NUM(2索引)/MYSQL_ASSOC(1关联)
mysql_fetch_row(); --以索引式数组解析结果集
*mysql_fetch_assoc(); --以关联式数组解析结果集
mysql_fetch_object(); --以对象方式解析结果集
8. mysql_free_result(结果集名); --释放结果集
------------------------
mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数
关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。
9. mysql_close(数据库连接); --关闭数据库连接
10. mysql_num_rows(结果集); --获取结果集中的数据条数
准则
需求分析->功能(模块)->数据库设计->找实体、找属性、找关系
数据库创建的准则
数据库内有多个库,库内有多个表,表内有多个字段,字段下有多个值,
数据库分为关系型和非关系型数据库
数据库和数据表存在date目录中,在MySQL目录下
如果遇到了,>这种情况,说明是少打了一个单引号,可以打一个单引号,再加一个分号就能结束这种情况
注意不管是查询还是删除一定要加上条件,查询所有的数据以后数据多了,就不会短时间内出来,要做精确查询,否则一下子会查出所有的信息,删除也是一样,不加条件判断会一下删除所有的信息
非必须掌握部分
MySQL服务器的用户权限管理
=========================================
-- 授权一个用户(zhangsan)密码123,可以对所有的库,所有的表做所有操作。
mysql> grant all on *.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.17 sec)
--刷新生效,否则就要重启MySQL服务才可以。
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
--浏览当前MySQL用户信息
mysql> select user,host,password from mysql.user;
+----------+-----------------+-------------------------------------------+
| user | host | password |
+----------+-----------------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| | localhost | |
| zhangsan | % | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| admin | 192.168.112.132 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+----------+-----------------+-------------------------------------------+
5 rows in set (0.00 sec)
-- 移除一些权限
-- revoke:只删除了用户权限,但没有删除这个用户
mysql> revoke insert,delete on *.* from admin@192.168.112.132 identified by'123';
-- 查看指定用户的权限信息
mysql> show grants for xbb@localhost;
+------------------------------------------------------------------------------------------------------------+
| Grants for xbb@localhost |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xbb'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+------------------------------------------------------------------------------------------------------------+
--drop user:删除了整个用户及其权限(包括数据字典中的数据)
mysql> drop user 'xbb'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| root | localhost |
| root | wangxg |
+------------------+-----------+
4 rows in set (0.00 sec)
一、概念:
数据: data
数据库: DB
数据库管理系统:DBMS
数据库系统:DBS
MySQL:数据库
mysql:客户端命令(用来连接服务或发送sql指令)
SQL:结构化查询语言 ,其中MySQL支持这个。
SQL语言分为4个部分:DDL、DML、DQL、DCL
二、连接数据库:
mysql -h 主机名 -u 用户名 -p密码 库名
C:\>mysql --采用匿名账号和密码登陆本机服务
C:\>mysql -h localhost -u root -p root --采用root账号和root密码登陆本机服务
C:\>mysql -u root -p --推荐方式默认登陆本机
Enter password: ****
C:\>mysql -u root -p lamp61 --直接进入lamp61数据库的方式登陆
三、授权:
格式:grant 允许操作 on 库名.表名 to 账号@来源 identified by '密码';
--实例:创建zhangsan账号,密码123,授权lamp61库下所有表的增/删/改/查数据,来源地不限
mysql> grant select,insert,update,delete on lamp61.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
修改
update demo set age=24 where name='aaa'; --修改
查询
查看数据库
show databases;
---------------------------------
查看当前使用的数据库是哪个
select database();
---------------------------------
查看表结构
desc 表名;
----------------------------------------------------
查看当前数据库中的表
show tables;
----------------------------------------------------
select * from demo; --查询数据
----------------------------------------------------
show create table stu --查看建表的语句
----------------------------------------------------
mysql_insert_id — 取得上一步 INSERT 操作产生的 ID
----------------------------------------------------
select * from 表名 where 条件;
select 字段1,字段2 from 表名;
增添
创建数据库
create database 数据库名;
create database [if not exists] 数据库名; --创建数据库
---------------------------------
创建数据库中的表
create table 表名(
字段名1 字段类型(长度有的有) 限制条件 键,
字段名2 字段类型(长度有的有) 限制条件 键,
字段名n 字段类型(长度有的有) 限制条件 键 );
----------------------------------------------------
例如代码如下
create table stu(
ID int unsigned not null auto_increment primary key,
age int zerofill default 18,
name varchar(32) unique,
index nianlig(age) );
----------------------------------------------------
往表里插入数据
insert into 表名 (字段1,字段2,字段n) values (值1,值2,值n);
insert into demo(name,age,sex) values('zhangsan',20,'w');
insert into demo values('lisi',22,'m'); --不指定字段名来添加数据
insert into demo(name,age) values('wangwu',23);指定部分字段名来添加数据
批量添加数据
insert into demo(name,age,sex) values('aaa',21,'w'),("bbb",22,'m');
杂项
连接数据库:
mysql -h 主机名 -u 用户名 -p密码 库名
一般用这个 MySQL -u root -p
使用数据库
use 数据库名;
---------------------------------
\h -- 快捷帮助
\c -- 取消命令输入
\s -- 查看当前数据库的状态
\q -- 退出mysql命令行
tee 加上一个路径是将写入命令行的命令导入到一个文件里
cls 清屏
\G 让命令行中的表竖起来
-----------------------------------
MySQL的运算符:
算术运算符:+ - * / %
比较运算符:= > < >= <= <> !=
数据库特有的比较:in,not in, is null,is not null,like, between and
逻辑运算符:and or not
--------------------------------------
表的字段约束:
unsigned 无符号(正数)
zerofill 前导零填充
auto_increment 自增
default 默认值
not null 非空
PRIMARY KEY 主键 (非null并不重复)
unique 唯一性 (可以为null但不重复)
index 常规索引
--------------------------------------
MySQL的数据类型
MySQL的数据类型分为四大类:数值类型、字串类型、日期类型、NULL。
5.1 数值类型:
*tinyint(1字节)
smallint(2字节)
mediumint(3字节)
*int(4字节)
bigint(8字节)
*float(4字节) float(6,2)
*double(8字节)
decimal(自定义)字串形数值
5.2 字串类型
普通字串
*char 定长字串 char(8)
*varchar 可变字串 varchar(8)
二进制类型
tinyblob
blob
mediumblob
longblob
文本类型
tinytext
*text 常用于<textarea></textarea>
mediumtext
longtext
*enum枚举
set集合
5.3 时间和日期类型:
date 年月日
time 时分秒
datatime 年月日时分秒
timestamp 时间戳
year 年
5.4 NULL值
NULL意味着“没有值”或“未知值”
可以测试某个值是否为NULL
不能对NULL值进行算术计算
对NULL值进行算术运算,其结果还是NULL
0或NULL都意味着假,其余值都意味着真
PHP操作数据库(六脉神剑)
操作步骤:
1. 连接MySQL数据库
2. 判断是否连接成功
3. 选择数据库
4. 设置字符集
5. 准备SQL语句
6. 向MySQL服务发送SQL语句
7. 解析处理结果集
8. 释放结果集,关闭数据库连接
二、常用操作:
1. mysql_connect();--连接数据库,并返回一个连接资源
格式: mysql_connect(主机名,用户,密码);
--其中参数可选,若不写则参考php.ini中默认配置
2. mysql_error(); --获取刚刚(最后)执行数据库操作的错误信息
3. mysql_errno(); --获取刚刚(最后)执行数据库操作的错误号
错误号为0表示没有错误
4. mysql_select_db(数据库名[,数据库连接]);
选择一个数据库,等同于"use 库名"语句
5. mysql_set_charset(字符编码); --设置字符编码
例如:mysql_set_charset("utf8"); 等同于:mysql_query("set names utf8");
6. mysql_query(sql语句[,数据库连接]); -- 发送一条sql语句
sql语句若是查询,则返回结果集,其他则返回boolean值表示执行是否成功。
7. 解析结果集函数:
mysql_fetch_array(); --以关联和索引两种方式数组解析结果集
也可以指定第二参数来定义返回格式:
MYSQL_BOTH(0关联和索引)/MYSQL_NUM(2索引)/MYSQL_ASSOC(1关联)
mysql_fetch_row(); --以索引式数组解析结果集
*mysql_fetch_assoc(); --以关联式数组解析结果集
mysql_fetch_object(); --以对象方式解析结果集
8. mysql_free_result(结果集名); --释放结果集
------------------------
mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数
关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。
9. mysql_close(数据库连接); --关闭数据库连接
10. mysql_num_rows(结果集); --获取结果集中的数据条数
准则
需求分析->功能(模块)->数据库设计->找实体、找属性、找关系
数据库创建的准则
数据库内有多个库,库内有多个表,表内有多个字段,字段下有多个值,
数据库分为关系型和非关系型数据库
数据库和数据表存在date目录中,在MySQL目录下
如果遇到了,>这种情况,说明是少打了一个单引号,可以打一个单引号,再加一个分号就能结束这种情况
注意不管是查询还是删除一定要加上条件,查询所有的数据以后数据多了,就不会短时间内出来,要做精确查询,否则一下子会查出所有的信息,删除也是一样,不加条件判断会一下删除所有的信息
非必须掌握部分
MySQL服务器的用户权限管理
=========================================
-- 授权一个用户(zhangsan)密码123,可以对所有的库,所有的表做所有操作。
mysql> grant all on *.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.17 sec)
--刷新生效,否则就要重启MySQL服务才可以。
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
--浏览当前MySQL用户信息
mysql> select user,host,password from mysql.user;
+----------+-----------------+-------------------------------------------+
| user | host | password |
+----------+-----------------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | |
| | localhost | |
| zhangsan | % | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| admin | 192.168.112.132 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+----------+-----------------+-------------------------------------------+
5 rows in set (0.00 sec)
-- 移除一些权限
-- revoke:只删除了用户权限,但没有删除这个用户
mysql> revoke insert,delete on *.* from admin@192.168.112.132 identified by'123';
-- 查看指定用户的权限信息
mysql> show grants for xbb@localhost;
+------------------------------------------------------------------------------------------------------------+
| Grants for xbb@localhost |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xbb'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+------------------------------------------------------------------------------------------------------------+
--drop user:删除了整个用户及其权限(包括数据字典中的数据)
mysql> drop user 'xbb'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| root | localhost |
| root | wangxg |
+------------------+-----------+
4 rows in set (0.00 sec)
一、概念:
数据: data
数据库: DB
数据库管理系统:DBMS
数据库系统:DBS
MySQL:数据库
mysql:客户端命令(用来连接服务或发送sql指令)
SQL:结构化查询语言 ,其中MySQL支持这个。
SQL语言分为4个部分:DDL、DML、DQL、DCL
二、连接数据库:
mysql -h 主机名 -u 用户名 -p密码 库名
C:\>mysql --采用匿名账号和密码登陆本机服务
C:\>mysql -h localhost -u root -p root --采用root账号和root密码登陆本机服务
C:\>mysql -u root -p --推荐方式默认登陆本机
Enter password: ****
C:\>mysql -u root -p lamp61 --直接进入lamp61数据库的方式登陆
三、授权:
格式:grant 允许操作 on 库名.表名 to 账号@来源 identified by '密码';
--实例:创建zhangsan账号,密码123,授权lamp61库下所有表的增/删/改/查数据,来源地不限
mysql> grant select,insert,update,delete on lamp61.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)