1.登入資料庫:
importmysqldb
conn= mysqldb.connect(host='127.0.0.1',user='root',passwd='',db='',port=3306) #連線資料庫
cursor = db.cursor() #使用cursor()方法獲取操作游標
cursor.execute("執行操作內容") #使用execute方法執行sql語句
data = cursor.fetchone() #使用 fetchone() 方法獲取一條資料庫
db.close() #關閉資料庫連線
修改資料庫root密碼:
mysqladmin -u root -p password 新密碼#或者:
mysql>use mysql;
mysql>update user set password=password('root123') where user='root'; #修改root密碼
mysql>flush privileges;
2.檢視資料庫:
mysql> show databases;
3.建立資料庫:
mysql> create database test;
mysql> show databases;
| database |
| information_schema |
| mysql |
| test |
3 rows in set (0.01 sec)
4.使用資料庫:
mysql>use test;
database changed
5.檢視表:
show tables;
6.建立表:
mysql> create table basicinfo (id int primary key auto_increment, name varchar(30) not null, age int notnull);
mysql>show tables;+----------------+
| tables_in_test |
| basicinfo |
1 row in set (0.00 sec)
#在乙個表的基礎上建立表:
mysql> create table new_tbl select * from orig_tbl;
7.插入資料:
語法:insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
mysql> insert into basicinfo(id, name, age) values('1','echo','30');
mysql> insert into basicinfo(id, name, age) values('2','pingy','25');
mysql> insert into basicinfo(id, name, age) values('3','telnet','18');
8.查詢資料:
語法:select 列名稱 from 表名稱 [查詢條件];
mysql> select * from basicinfo ; #查詢所有資料內容
| id | name | age |
| 1 | echo | 30 |
| 2 | pingy | 25 |
| 3 | telnet | 18 |
3 rows in set (0.00sec)
mysql> select id from basicinfo ; #只檢視id項的資料內容,同理可以把id換成name或age,只檢視name,age項
| id |
| 1 |
| 2 |
| 3 |
3 rows in set (0.00sec)
9.修改資料:
語法:update 表名稱 set 列名稱=新值 where 更新條件;
mysql> update basicinfo set name = 'ssh' where id=1 ; #修改id為1的name為:ssh
mysql> select * frombasicinfo ;+----+--------+-----+
| id | name | age |
| 1 | ssh | 30 | #由echo變為ssh了
| 2 | pingy | 25 |
| 3 | telnet | 18 |
3 rows in set (0.00 sec)
10.刪除資料:
語法:delete from 表名稱 where 刪除條件;
mysql> delete from basicinfo where id =3; #刪除id為3的項
query ok, 1 row affected (0.00sec)
mysql> select * frombasicinfo ;+----+-------+-----+
| id | name | age |
| 1 | ssh | 30 |
| 2 | pingy | 25 |
2 rows in set (0.00 sec)
11.刪除表:
語法:drop table table_name; 或者 drop table if exists table_name;
12.刪除資料庫:
語法:drop database 資料庫名;
13.資料回滾:
cur.rollback() #回滾
例:#開啟資料庫連線
db = mysqldb.connect("127.0.0.1","root","root123","mydb")#使用cursor()方法獲取操作游標
cursor =db.cursor()#sql 更新語句
sql = "update employee set age = age + 1
where *** = '%c'"% ('m')
try:#執行sql語句
cursor.execute(sql)#提交到資料庫執行
db.commit()except:#發生錯誤時回滾
db.rollback()#關閉資料庫連線
db.close()
例項1:
mysql> select * from basicinfo; #先檢視現有表資料內容
| id | name | age |
| 1 | echo | 30 |
| 2 | pingy | 25 |
| 3 | telnet | 18 |
3 rows in set (0.00 sec)
連線資料庫並操作:
cur=conn.cursor()
conn.select_db('mydb')
res= cur.execute("update basicinfo set name = 'john',age = 20 where id=1 ;") #修改id為1的內容:名字為john,年齡為20
conn.commit()
cur.close()
conn.close()print(res)
再次查詢:
mysql> select * frombasicinfo;+----+--------+-----+
| id | name | age |
| 1 | john | 20 | #內容被修改了
| 2 | pingy | 25 |
| 3 | telnet | 18 |
3 rows in set (0.00 sec)
例項2:
importmysqldb
conn= mysqldb.connect(host='127.0.0.1',user='root',passwd='',db='',port=3306) #連線資料庫
cur =conn.cursor()
conn.select_db('newdb')
res= cur.execute("select * from info;")print(cur.fetchone()) #返回第一條資料內容
res1 = cur.execute("insert into info(id, name, age) values('2','pingy','25');")#cur.executemany() #執行多條語句
conn.commit() #提交
cur.close() #關閉連線
conn.close() #關閉操作
print(res)
輸出結果:
mysql ping實現資料庫重連
實際工作中遇到上一次資料庫訪問和下一次資料庫訪問超過wait timeout的情況,此時就會報mysql has gone away的錯誤.利用mysql ping可以解決 1 現在資料庫抽象層加入重連功能 重新連線資料庫 private function reconnect 檢查資料庫連線是否可用...
Mysq中的流程控制語句的用法
這篇部落格主要是總結一下mysq中的流程控制語句的用法,主要是 case,if,ifnull,nullif 1.case case value when compare value then result when compare value then result else result end ...
mysq比較時間
在oracle中使用時間函式to date習慣了,在oracle中時間的加減也非常簡單,直接加減即可。在mysql中時間的函式很多,非常自由。在專案中經常用到的就是時間的加減。比如60天前,oracle中直接就是sysdate 60,mysql中就不行。對時間加減的函式是 加adddate 減sub...