Web安全分享
1、Web安全——HTML基礎(chǔ)
2、Web安全——DIV CSS基礎(chǔ)
3、Web安全——JavaScript基礎(chǔ)
4、Web安全——PHP基礎(chǔ)
5、Web安全——JavaScript基礎(chǔ)(加入案例)
6、靶場(chǎng)搭建——搭建pikachu靶場(chǎng)
一·、數(shù)據(jù)庫(kù)的基本操作
1、MYSQL登錄與退出
D:\phpStudy\MySQL\bin
登陸: 輸入 mysql -uroot -p -P3306 -h127.0.0.1
退出的三種方法
mysql > exit;
mysql > quit;
mysql > \q;
語(yǔ)法使用:
數(shù)據(jù)庫(kù)的登陸:
Microsoft Windows [版本 10.0.22621.4]
(c) Microsoft Corporation。保留所有權(quán)利。
C:\Users\lenovo>mysql -uroot -p123456 -h127.0.0.1
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
這里版本我們可以看到為mysql5.7.26
下面為幫助指令:
mysql> help
For information about MySQL products and services, visit:
http://www.mysql.com/
For developer information, including the MySQL Reference Manual, visit:
http://dev.mysql.com/
To buy MySQL Enterprise support, training, or other products, visit:
https://shop.mysql.com/
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
notee (\t) Don't write into outfile.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
resetconnection(\x) Clean session context.
For server side help, type 'help contents'
mysql>
以及某一個(gè)命令在mysql下如何使用查詢:
mysql> help use
Name: 'USE'
Description:
Syntax:
USE db_name
The USE db_name statement tells MySQL to use the db_name database as
the default (current) database for subsequent statements. The database
remains the default until the end of the session or another USE
statement is issued:
USE db1;
SELECT COUNT(*) FROM mytable; # selects from db1.mytable
USE db2;
SELECT COUNT(*) FROM mytable; # selects from db2.mytable
The database name must be specified on a single line. Newlines in
database names are not supported.
URL: http://dev.mysql.com/doc/refman/5.7/en/use.html
mysql>
接下來(lái)為三種不同的退出方式:
mysql> exit;
Bye
C:\Users\lenovo>
mysql> quit;
Bye
C:\Users\lenovo>
mysql> \q;
Bye
C:\Users\lenovo>
2、MYSQL數(shù)據(jù)庫(kù)的一些解釋
注意: 數(shù)據(jù)庫(kù)就相當(dāng)于文件夾,表就相當(dāng)于文件
我們可以看見這里面即為我們創(chuàng)建并使用的數(shù)據(jù)庫(kù),同時(shí)打開之后都為很多的表單。
3、MYSQL注釋符有三種:
1、#...
2、"-- ..."
3、/*...*/
二、數(shù)據(jù)庫(kù)的一些基本操作
1、數(shù)據(jù)庫(kù)的增刪改查(sql語(yǔ)句)
這里db*
為數(shù)據(jù)庫(kù)名稱,可隨意:
-
增:
create database db1;
-
刪:
drop database db1;
-
改:
alter database db1 charset utf8
-
查:
show databases;
#查看所有的數(shù)據(jù)庫(kù)
實(shí)際操作:
創(chuàng)建數(shù)據(jù)庫(kù):
mysql> create database moondata;
Query OK, 1 row affected (0.00 sec)
查看數(shù)據(jù)庫(kù):
ysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| moondata |
| mydata |
| mysql |
| performance_schema |
| pikachu |
| sys |
+--------------------+
7 rows in set (0.00 sec)
mysql> show create database moondata;
+----------+-------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------------------------------+
| moondata | CREATE DATABASE `moondata` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ |
+----------+-------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
修改數(shù)據(jù)庫(kù):
mysql> alter database moondata charset utf8;
Query OK, 1 row affected (0.00 sec)
mysql>
刪除數(shù)據(jù)庫(kù):
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| moondata |
| mydata |
| mysql |
| performance_schema |
| pikachu |
| sys |
+--------------------+
7 rows in set (0.00 sec)
mysql> drop database moondata;
Query OK, 0 rows affected (0.02 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydata |
| mysql |
| performance_schema |
| pikachu |
| sys |
+--------------------+
6 rows in set (0.00 sec)
mysql>
其他命令:
查看指定的數(shù)據(jù)庫(kù) show create database db1;
mysql> show create database moondata;
+----------+-------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------------------------------+
| moondata | CREATE DATABASE `moondata` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ |
+----------+-------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
設(shè)置默認(rèn)的utf8
,在配置文件中:寫上character_set_server = utf8
use db2
select database()
#查看你當(dāng)前在哪個(gè)文件夾
重命名數(shù)據(jù)庫(kù) RENAME
database olddbname TO newdbname
show status;
顯示一些系統(tǒng)特定資源的信息,例如,正在運(yùn)行的線程數(shù)量。
desc tabl_name;
顯示表結(jié)構(gòu),字段類型,主鍵,是否為空等屬性,但不顯示外鍵。
show databases
查看這個(gè)mysql
里面有多少個(gè)庫(kù)
use mysql
use
選擇數(shù)據(jù)庫(kù)
show tables
查看當(dāng)前庫(kù)里面所有的表
mysql> select password from user where user='root';
Mysql 5.7 select authentication_string,user from mysql.user;
查看當(dāng)前數(shù)據(jù)庫(kù) 里面的表user
用戶為root
的密碼
alter database
數(shù)據(jù)庫(kù)名 character set utf8;
三、table 表的操作
1、查看表結(jié)構(gòu)
desc table
DESCRIBE
表名;
2、查看表的內(nèi)容
select * from table_name
3、建立表
CREATE TABLE
表名 (
屬性名 數(shù)據(jù)類型 [完整約束條件],
屬性名 數(shù)據(jù)類型 [完整約束條件],
…
…
屬性名 數(shù)據(jù)類型 [完整約束條件]
);
字段名就是屬性名
完整的建立表的語(yǔ)句
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表示當(dāng)相同的表名存在時(shí),則不執(zhí)行此創(chuàng)建語(yǔ)句,避免語(yǔ)句執(zhí)行錯(cuò)誤
create database if not exists [table];
ENGINE=InnoDB DEFAULT CHARSET=utf8;
ENGINE
設(shè)置表的引擎 和默認(rèn)的字符類型
常見的數(shù)據(jù)庫(kù)引擎InnoDB myisam
數(shù)據(jù)類型https://www.cnblogs.com/-xlp/p/8617760.html
4、約束條件
PRIMARY KEY
標(biāo)識(shí)該屬性為該表的主鍵,可以唯一的標(biāo)識(shí)對(duì)應(yīng)的元組FOREIGN KEY
標(biāo)識(shí)該屬性為該表的外鍵,是與之聯(lián)系某表的主鍵
NOT NULL
標(biāo)識(shí)該屬性不能為空UNIQUE
標(biāo)識(shí)該屬性的值是唯一的AUTO_INCREMENT
標(biāo)識(shí)該屬性的值是自動(dòng)增加,這是MySQL的SQL語(yǔ)句的特色DEFAULT
為該屬性設(shè)置默認(rèn)值
5、修改表的操作
修改表
格式: ALTER TABLE
舊表名 RENAME
新表名;
修改字段的數(shù)據(jù)類型:
ALTER TABLE
表名MODIFY
屬性名 數(shù)據(jù)類型;
修改字段名:
ALTER TABLE
表名CHANGE
舊屬性名 新屬性名 新數(shù)據(jù)類型;
增加字段名:
ALTER TABLE
表名ADD
屬性名1 數(shù)據(jù)類型 [完整性約束條件] [FIRST | AFTER
屬性名2];
刪除字段:
ALTER TABLE
表名DROP
屬性名;
更改表的存儲(chǔ)引擎:
格式:
ALTER TABLE
表名ENGINE =
存儲(chǔ)引擎名;
四、數(shù)據(jù)的增刪改查
為表中所有字段添加數(shù)據(jù)
語(yǔ)法: INSERT INTO
表名(字段名1,字段名2,…)VALUES(值1,值2,…);mysql> insert into users (id,username,password)values(1,'moon','123456');
1、增
語(yǔ)法: INSERT INTO
表名 VALUES(值11,值2,…);mysql> insert into users values(null,'test','123456');
語(yǔ)法: INSERT INTO
表名(字段1,字段2,…)VALUES
(值1,值2,…)
語(yǔ)法: INSERT INTO
表名 SET
字段名1=值1[,字段名2=值2,…]
舉例: INSERT INTO student SET id=4,name='zhaoliu',grade=72?
同時(shí)添加多條數(shù)據(jù)
語(yǔ)法: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');
2、刪
DELETE FROM
表名 [WHERE
條件表達(dá)式delete from users where id=1;
刪除全部數(shù)據(jù)
若 DELETE
語(yǔ)句中沒有使用WHERE
語(yǔ)句,則會(huì)將表中所有記錄都刪除。DELETE FROM
表名
刪除全部數(shù)據(jù)的另一種方法——TRUNCATE
3、更新
語(yǔ)法: UPDATE
表名 SET
字段名1=值1,[ ,字段名2=值2,…][ WHERE 條件表達(dá)式 ]
update users set password='aaaa' where id=1;
update users set password='123456',username='moon' where id=1
update users set password=456789;
4、查
select * from users;
星號(hào)代表所有的字段
查詢指定的字段select username,password from users;
- 按條件調(diào)節(jié)查詢
- 按關(guān)系來(lái)查詢
語(yǔ)法: SELECT
字段名1,字段名2,…FROM
表名WHERE
條件表達(dá)式
1、in 查詢
SELECT * FROM student2 WHERE id IN (1,2,3);
帶 BETWEEN AND
關(guān)鍵字的查詢select * from users where id not between 1 and 10;
帶 DISTINCT
關(guān)鍵字的查詢select distinct username from users
like
查詢 一般都會(huì)給跟著 %
select * from users where username like "%m%" ;
下劃線 _ 匹配一個(gè)字符select* from users where username like "moo_"
2、and查詢
滿足多個(gè)條件select * from users where id=1 and username='moon';
3、or查詢
滿足任意一個(gè)條件select * from users where id=1 or username='moon';
OR
和 AND
一起使用的情況OR
和 AND
一起使用的時(shí)候,AND
的優(yōu)先級(jí)高于 OR
,因此二者一起使用時(shí),會(huì)先運(yùn)算 AND
兩邊的表達(dá)式,再運(yùn)算 OR
兩邊的表達(dá)式。mysql> select * from users where id >5 and password='123456c' or username='moon1';
4、聚合查詢
count
返回行數(shù)
select count(*) from users;
select count(id) from users;
COUNT()
返回某列的行數(shù)SUM()
返回某列值的和AVG()
返回某列的平均值MAX()
返回某列的最大值MIN()
返回某列的最小值
5、分組查詢
如果報(bào)錯(cuò)請(qǐng)?jiān)?my.ini
添加sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
GROUP BY
mysql> SELECT * FROM users GROUP BY password;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 3 | moon1 | 123456 |
| 1 | moon | 456789 |
+----+----------+----------+
2 rows in set (0.01 sec)
mysql> SELECT * FROM users GROUP BY username;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 2 | alex1 | 456789 |
| 1 | moon | 456789 |
| 3 | moon1 | 123456 |
+----+----------+----------+
3 rows in set (0.01 sec)
使用 LIMIT
限制查詢結(jié)果的數(shù)量
select * from users limit 2,10;
select * from users as u where u.id=1;
為表和字段取別名select username as myname from users;
6、mysql的子查詢
-
where
型子查詢
(把內(nèi)層查詢結(jié)果當(dāng)作外層查詢的比較條件)
select * from users where id in (select id from users where id>10);
-
from
型子查詢
(把內(nèi)層的查詢結(jié)果供外層再次查詢)
select * from (select username,age from users) as agev_a where age>20
select * from (select * from users where id>=10) as age_10;
(select * from users where id>=10)
查詢出來(lái)的是一個(gè)集合 別名為age_10
select * from age_10
-
exists
型子查詢
(把外層查詢結(jié)果拿到內(nèi)層,看內(nèi)層的查詢是否成立)
select * from users where EXISTS (select * from users where id>1)
7、聯(lián)合查詢
(兩個(gè)表的查詢)
注釋: 默認(rèn)地,UNION
操作符選取不同的值。如果允許重復(fù)的值,請(qǐng)使用 UNION ALL
。
當(dāng) ALL
隨 UNION
一起使用時(shí)(即 UNION ALL
),不消除重復(fù)行UNION ALL
查詢?nèi)?而且不會(huì)消除重復(fù)的行union
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-533186.html
SQL UNION ALL
語(yǔ)法union
的用法及注意事項(xiàng)
兩次查詢的列數(shù)必須一致select * from users union select *,1 from news;
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-533186.html
CREATE TABLE `news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) not NULL,
`content` varchar(255) not null,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
insert into news (title,content)values('a1','a1');
到了這里,關(guān)于Web安全——數(shù)據(jù)庫(kù)mysql學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!