蘭州互聯(lián)網(wǎng)公司seo深度解析
目錄
1 mysql介紹
2 數(shù)據(jù)庫常見語法
3 數(shù)據(jù)庫表的常見語法
4 其他常見語法(日期,查詢表字段)
5 JDBC開發(fā)步驟
6 索引
6.1 索引常見語法
7 常見面試總結(jié)
8 java代碼搭建監(jiān)控頁面
1 mysql介紹
????????數(shù)據(jù)庫:存儲在硬盤上的文件系統(tǒng),通過標準的sql語句去操作????????
????????作用:存儲各種各樣的數(shù)據(jù)
2 數(shù)據(jù)庫常見語法
2.1、創(chuàng)建數(shù)據(jù)庫:
1、create database 數(shù)據(jù)庫名 ??2、create?database 數(shù)據(jù)庫名稱 character set 字符集
2.2、查看數(shù)據(jù)庫:
????????查看所有的數(shù)據(jù)庫:show databases;
????????查看單個數(shù)據(jù)庫:show create database 數(shù)據(jù)庫名;
2.3、刪除數(shù)據(jù)庫
????????Drop database 數(shù)據(jù)庫名稱;
2.4、修改數(shù)據(jù)庫
????????Alter database 數(shù)據(jù)庫名 character set 字符集;
2.5、數(shù)據(jù)庫的其他操作
????????查看當(dāng)前使用的數(shù)據(jù)庫:select database();
????????切換數(shù)據(jù)庫:use 數(shù)據(jù)庫名;
2.6 修改庫的排序規(guī)則
????????ALTER DATABASE db1 CHARACTER SET utf8 COLLATE utf8_unicode_ci
3 數(shù)據(jù)庫表的常見語法
1 單表約束有哪些?
1、主鍵(唯一和非空)2、唯一 ?unique3、非空 ?not null
2 表操作語法
????????查看所有的表:show tables;
????????查看單個表:desc 表名;
????????刪除數(shù)據(jù)庫表:Drop table 表名;
????????修改表名稱(慎用):Rename table 舊表名 to 新表名
????????添加列:alter 表名 add 列名 類型(長度) 約束
????????修改列的類型和約束:alter table 表名 modify 列名 類型(長度) 約束
????????修改列的名稱:alter table 表名 change 舊列名 新列名 類型(長度) ?約束
????????刪除列:alter table 表名 drop 列名;? ??
????????添加表字段:
????????????????alter table user add certificates_type varchar(1) not null;
????????????????alter table user add certificates_type varchar(1);
????????修改字段類型和注釋
????????ALTER TABLE tb_user MODIFY COLUMN sex VARCHAR (20) COMMENT '年齡';
????????修改字段類型
????????????????alter table tb_user modify column age varchar(10);
????????修改表的字符集和所有列的字符集:
ALTER TABLE order CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
4 其他常見語法(日期,查詢表字段)
獲取當(dāng)前日期:select curdate();?
獲取當(dāng)月最后一天:select last_day(curdate()); //2019-08-31
獲取下個月的第一天:select date_add(curdate()-day(curdate())+1,interval 1 month);?
獲取下個月的最后一天:select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now()) day),interval -2 month)?
獲取當(dāng)前年的最后一天:select concat(YEAR(now()), '-12-31') //2019-12-31
獲取當(dāng)前年的第一天:select DATE_SUB(CURDATE(),INTERVAL dayofyear(now()) - 1 DAY) //2019-01-01
獲取前一天:SELECT date_sub(NOW(), INTERVAL 1 DAY);
日期格式化:select DATE_FORMAT(CURDATE(), '%Y-%m-%d')
其他查詢:
- set @dt = now();
- select date_add(@dt, interval 1 day); ? - 加1天
- select date_add(@dt, interval 1 hour); ? -加1小時
- select date_add(@dt, interval 1 minute); ? ?- 加1分鐘
- select date_add(@dt, interval 1 second); -加1秒
- select date_add(@dt, interval 1 microsecond);-加1毫秒
- select date_add(@dt, interval 1 week);-加1周
- select date_add(@dt, interval 1 month);-加1月
- select date_add(@dt, interval 1 quarter);-加1季
- select date_add(@dt, interval 1 year);-加1年
查詢表字段(包含字段名、字段類型、字段長度、是否為空以及屬性等)
SELECT
?? ?COLUMN_NAME AS columnName,
?? ?data_type AS columnType,
?? ?CHARACTER_MAXIMUM_LENGTH AS columnLength,
?? ?IS_NULLABLE AS isNull,
?? ?COLUMN_COMMENT AS columnComent
FROM
?? ?INFORMATION_SCHEMA. COLUMNS
WHERE
?? ?table_name = 'sys_user'
查看當(dāng)前年的所有月份sql(直接復(fù)制運行即可)
SELECT
?? ?DATE_FORMAT( DATE_ADD( CONCAT( YEAR ( DATE( '2018-04-01' )), '-01-01' ), INTERVAL ( CAST( help_topic_id AS SIGNED INTEGER )) MONTH ), '%Y-%m' ) MONTH?
FROM
?? ?mysql.help_topic?
WHERE
?? ?help_topic_id < 12?
ORDER BY
MONTH ASC
5 JDBC開發(fā)步驟
1、注冊驅(qū)動 class.forNanme(“com.mysql.jdbc.Driver”)
注冊驅(qū)動的方法 ?static void registerDriver(Driver driver)
2、獲取連接對象:
方法:
Static Connection getConnection(Stirng url, String user, Stirng password)
Connection:返回連接的對象
url:數(shù)據(jù)庫的地址
user:用戶名
password:密碼
Connectionconn = DriverManager.getConnection(url,name,password);
3、創(chuàng)建語句執(zhí)行平臺:
Statement stat = conn.createStatement();
executeUpdate(sql);
4、執(zhí)行sql語句
select * from 表名 條件;
5、處理結(jié)果集
6、釋放資源
6 索引
6.1 索引常見語法
創(chuàng)建索引
//普通索引 alter table table_name add index index_name (column_list) ; //唯一索引 alter table table_name add unique (column_list) ; //主鍵索引 alter table table_name add primary key (column_list) ;
刪除索引
drop index index_name on table_name ; // table_name :表名 index_name :索引名 alter table table_name drop index index_name ; alter table table_name drop primary key ;
查看索引
(1)show index from tblname;
(2)show keys from tblname;
4.5 查詢mysql定時器是否開啟
show VARIABLES LIKE '%event_scheduler%';
如果為OFF則為關(guān)閉,為NO為開啟
mysql不能使用group by
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
7 常見面試總結(jié)
mysql常見的索引有哪些?
主鍵索引
唯一索引
普通索引
全文索引
組合索引
導(dǎo)致索引的失效的原因有哪些?
- 查詢條件不規(guī)則:如like,%a%,like %在左邊
- 使用函數(shù):如:length, where length(xx) = 1;
- 計算操作:如 where id+1=100;
- 查詢字段的數(shù)據(jù)類型不匹配,如一個是utf8 另一個是utf8mb4
==========================================設(shè)計模式===============================
單例設(shè)計模式:保證對象的唯一性
懶漢式:延遲加載 ?當(dāng)我需要這個對象的時候才去加載
面試之前 ?敲兩遍餓汗式 ?懶漢式
8 java代碼搭建監(jiān)控頁面
druid數(shù)據(jù)庫連接池監(jiān)控頁面