自己总结的MySQL基础

删除
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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值