WEB安全之数据库mysql(一):Mysql数据库的基本操作、table表的操作、数据的增删改
1.数据库的基本操作
1.1.MYSQL登录与退出
D:\phpStudy\MySQL\bin
输入 mysql -uroot -p -P3306 -h127.0.0.1
退出的三种方法
mysql > exit;
mysql > quit;
mysql > \q;
- 在命令行下登陆
- 打开Php study来到软件管理页面下载HeidiSQL11.0
- 进行管理配置
- 来到设置,打开MySQL文件位置
- 复制bin的绝对路径
- -u用户,-p密码,-h127.0.0.1本地登陆
- 退出
1.2.MYSQL数据库的一些解释
- 注意:数据库就相当于文件夹
表就相当于文件 - 看当前mysql里面有多少个数据库
1.3.mysql注释符有三种
1、#...
2、"-- ..."
3、/*...*/
- use 选择数据库
- show tables 查看当前库里面所有的表
2.数据库的一些基本操作
2.1.数据库的增删改查(sql语句)
- 增:create database db1;
删:drop database db1;
改:alter database db1 charset utf8
查:show databases;#查看所有的数据库
show create database db1;
查看指定的数据库
设置默认的utf8,在配置文件中:写上character_set_server = utf8
use db2
select database() #查看你当前在哪个文件夹
重命名数据库 RENAME database olddbname TO newdbname
show status; -- 显示一些系统特定资源的信息,例如,正在运行的线程数量。
desc tabl_name; 显示表结构,字段类型,主键,是否为空等属性,但不显示外键。
show databases 查看这个mysql里面有多少个库
use mysql
use 选择数据库
show tables 查看当前库里面所有的表
mysql> select password from user where user='root';
Mysql 5.7 select authentication_string,user from mysql.user;
查看当前数据库 里面的表user 用户为root的密码
alter database 数据库名 character set utf8;
- 设置默认的utf8,在配置文件中
- 报错解决
- 报错解决,超时时间设置一分钟
链接: 报错解决
3.table 表的操作
3.1.查看表结构
desc table
DESCRIBE 表名;
3.2.查看表的内容
select * from table_name
3.3.建立表
CREATE TABLE 表名 (
属性名 数据类型 [完整约束条件],
属性名 数据类型 [完整约束条件],
...
...
属性名 数据类型 [完整约束条件]
);
- 字段名就是属性名
- 完整的建立表的语句
create table users(id int(7) AUTO_INCREMENT,
username varchar(100) not null,
password varchar(100) not null,
PRIMARY KEY(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> create table users(id int(7) UNSIGNED auto_increment,username varchar(30) not null,password varchar(32) not null,email varchar(40),primary key (id))engine=myisam default charset=utf8;
Query OK, 0 rows affected (0.00 sec)
- if not exists表示当相同的表名存在时,则不执行此创建语句,避免语句执行错误
create database if not exists [table];
ENGINE=InnoDB DEFAULT CHARSET=utf8;
ENGINE 设置表的引擎 和默认的字符类型
-
常见的数据库引擎
-
InnoDB myisam
-
数据类型
链接: 数据类型 -
UNSIGNED无符号数
3.4.约束条件
- PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY 标识该属性为该表的外键,是与之联系某表的主键
NOT NULL 标识该属性不能为空
UNIQUE 标识该属性的值是唯一的
AUTO_INCREMENT 标识该属性的值是自动增加,这是MySQL的SQL语句的特色
DEFAULT 为该属性设置默认值
3.5.修改表的操作
- 修改表
格式:ALTER TABLE 旧表名 RENAME 新表名;
- 修改字段的数据类型
ALTER TABLE 表名 MODIFY 属性名 数据类型;
- 修改字段名:
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;
- 增加字段名
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2];
- 删除字段
ALTER TABLE 表名 DROP 属性名;
- 更改表的存储引擎
格式:ALTER TABLE 表名 ENGINE = 存储引擎名;
- 修改表名
- 修改字段的数据类型
- 修改字段名
- 字段名就是属性名
- 增加字段名
- 删除address,再将其添加为第一个
- 更换数据库引擎
4.数据的增删改
- 为表中所有字段添加数据
语法:INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…);
mysql> insert into users (id,username,password)values(1,'moon','123456');
4.1.增
- 语法:INSERT INTO 表名 VALUES(值11,值2,…);
mysql> insert into users values(null,'test','123456');
- 语法:INSERT INTO 表名(字段1,字段2,…)VALUES(值1,值2,…)
语法:INSERT INTO 表名 SET 字段名1=值1[,字段名2=值2,…]
举例:INSERT INTO student SET id=4,name=‘zhaoliu’,grade=72;
- Id号自增(mysql特色)
- 同时添加多条数据
语法:INSERT INTO 表名[(字段名1,字段名2,…)]VALUES (值1,值2,…),(值1,值2,…),
mysql> insert into users (id,username,password)values(null,'moon','123456'),(null,'alex','123456');
:INSERT INTO 表名[(字段名1,字段名2,…)]VALUES (值1,值2,…),(值1,值2,…),(值1,值2,…)
mysql> insert into users values(null,'moon1','123456'),(null,'alex1','123456');
4.2.删
DELETE FROM 表名 [WHERE 条件表达式
delete from users where id=1;
- 删除全部数据
- 若 DELETE 语句中没有使用WHERE语句,则会将表中所有记录都删除。
DELETE FROM 表名 - 删除全部数据的另一种方法——TRUNCATE
4.3.更新
语法:UPDATE 表名 SET 字段名1=值1,[ ,字段名2=值2,…][ WHERE 条件表达式 ]
update users set password='aaaa' where id=1;
update users set password='123456',username='moon' where id=1
update users set password=456789;