mysql 自动化运维开发_Python自动化运维开发----基础(十三)Mysql数据库基础
1.MYSQL 語言的分類
(1) DDL 數據庫定義
(2) DQL 數據庫查詢
(3) DML 數據庫操作
(4) DCL? 數據庫權限
2.MYSQL? 操作
(1) 創建數據庫mysql>?create?database?cmdb?default?charset?utf8;
(2)查看所有的數據庫mysql>?show?databases;
+--------------------+
|?Database???????????|
+--------------------+
|?information_schema?|
|?cmdb???????????????|
|?mysql??????????????|
|?performance_schema?|
|?sys????????????????|
+--------------------+
5?rows?in?set?(0.00?sec)
(3) 使用cmdb數據庫mysql>?use?cmdb;
(4) 查看數據庫的創建語法mysql>?show?create?database?cmdb;
(5) 刪除數據庫mysql>?drop?database?cmdb;
(6) 查看所有的表mysql>?show?tables;
(7)? 創建用戶表mysql>?create?table?user(id?int,name?varchar(64),age?int,?sex?boolean,telphone?varchar(32),?addr?varchar(512))engine=innodb?default?charset?utf8;
(8)? 查看創建表的過程mysql>?show?create?table?user;
(9)? 刪除表mysql>?drop?table?user;
(10)? 查看表結構mysql>?desc?user;
(11)? 插入數據mysql>?insert?into?user(id,name,age,sex,telphone,addr)values(1,'李寬',25,1,'18829787559','陜西省西安市');
(12)? 查看數據mysql>?select?*?from?user;
(13)? 只查詢指定的列mysql>?select?name,addr?from?user;
(14)? 條件查詢
where
邏輯關聯詞? and? or
關系表達式? >? =? <=? !=
like表達式
(1) % 占多位? ? 'abc%'? ?'%abc'
(2) _ 占一位? ? ? ‘abc_’ '_abc'
in 的使用? ? ? ?colname? in (a,b)
not in 的使用? ?colname not in (a,b)select?name,age,addr?from?user?where?addr?=?'陜西省西安市'?and?age=25;
mysql>?select?name,age,addr?from?user?where?addr?=?'陜西省西安市'?or?age?=?25;
select?name,age,addr?from?user?where?addr?=?'陜西省西安市'?or?age?>?25;
mysql>?select?name,age,addr?from?user?where?age?>=?25;
mysql>?select?name,age,addr?from?user?where?age?!=?25;
select?name,age,addr?from?user?where?age?
mysql>?select?name,age,addr?from?user?where?addr?like?'陜西省%';
mysql>?select?name,age,addr?from?user?where?addr?like?'%市';
mysql>?select?name,age,addr?from?user?where?not?(addr?like?'臨汾市');
mysql>?select?name,age,addr?from?user?where?age?in?(23,25);
mysql>?select?name,sex,age,addr?from?user?where?age?not?in?(15,25);
(15)? 查詢總數mysql>?select?count(*)?from?user;
3.創建CMDB的用戶表
建表的sql,性別在數據庫中存儲的時候,男存1,女存0CREATE?TABLE?user(
id?int?primary?key?auto_increment,
name?varchar(32)?unique?not?null?default?'',
password?varchar(512)?not?null?default?'',
age?int?not?null?default?18,
sex?boolean?not?null?default?1,
tel?varchar(16)?not?null?default?'',
addr?text,
add_time?datetime
)ENGINE=INNODB?DEFAULT?CHARSET?utf8mb4;
批量插入測試數據insert?into?user(name,?password,?age,?sex,?tel,?addr,?add_time)?values?('kk',?md5('kk'),?30,?1,?'15200000000',?'西安市',?now()),\
('woniu',?md5('woniu'),?30,?1,?'15200000001',?'北京市',?now()),('zhangzhengguang',?md5('zhangzhengguang'),?30,?1,?'15200000003',?'杭州市',?now()),\
('likuan',?md5('likuan'),?30,?1,?'15200000002',?'西安市',?now())
查看用戶登錄的用戶名和密碼mysql>?select?name,password?from?user?where?name='likuan'?and?password=md5('likuan');
查找所有的數據mysql>?select?id,name,password,age,sex,tel,addr?from?user?;
限制查詢的數據 (limit可以用來做分頁)mysql>?select?id,name,password,age,sex,tel,addr?from?user?limit?1;
Limit?和?offset結合使用mysql>?select?id,name,password,age,sex,tel,addr?from?user?limit?2?offset?2;
排序 (降序和升序)
降序(desc)Mysql>?select?id,name,password,age,sex,tel,addr?from?user?order?by?age?desc;
升序(asc)mysql>?select?id,name,password,age,sex,tel,addr?from?user?order?by?age?asc;
更新操作mysql>?update?user?set?age=15?where?id?=?3;
mysql>?update?user?set?name='kk',tel='152',sex=1,addr='西安市'?where?id?=?1;
刪除操作mysql>?delete?from?user?where?id?=?1;
mysql>?delete?from?user;
聚合函數mysql>?select?max(age),min(age),avg(age),count(age),sum(age)?from?user;
分類統計mysql>?select?addr,?count(*)?from?user?group?by?addr;
mysql>?select?addr,age,?count(*)?from?user?group?by?addr,age;
4.Python代碼里操作mysql
首先需要安裝mysql的開發包? ?mysql-devel
其次pip安裝 mysqlclient
使用是導入包? MysqlSQLdb
Python操作mysql的七步
(1)導入模塊import?MySQLdb
(2)創建連接conn=MySQLdb.connect(host='127.0.0.1',port=3306,user='root',passwd='passwd',db='cmdb')
(3)獲取游標cursor?=?conn.cursor()
(4)執行sql(DQL 和 DML)
DQL
返回符合條件的個數cursor.execute("select?id,name?from?user?where?name='likuan'?and?password=md5('likuan');")
DMLcursor.execute("update?user?set?age?=?35?where?id?=?1")
(5)DQL獲取結果 、DML提交執行
DQL(元組)cursor.fetchall()
cursor.fetchone()
>>>?cursor.fetchall()
(('kk',),?('likuan',),?('woniu',),?('zhangzhengguang',))
DML 提交conn.commit()
(6)關閉游標cursor.close()
(7)關閉連接conn.close()
5.提交sql采用預處理的方式(預防sql注入)
(1)將操作和數據分開
(2)兩個變量,一個是sql操作,一個是對應的數據
(3)只有數據才可以占位,操作不能占位
標簽:addr,運維,Python,age,Mysql,user,mysql,select,name
來源: https://blog.51cto.com/12217124/2359822
總結
以上是生活随笔為你收集整理的mysql 自动化运维开发_Python自动化运维开发----基础(十三)Mysql数据库基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用powershell代码安装Windo
- 下一篇: 哥大创建了世界上第一个医用毒液数据库