python MySQL的常用操作

1.创建库,表

建库:create database 库名;

建表:create table 表名( 列名 数据类型(位数) not null );

如:create table student(id int(10) not null,name varchar(10));

此处为创建一个名字为student的表,其中有id,name,id的数据类型为整形并且位数最大为10,not null 表示不能为空,

name字段数据类型为字符类型,位数最大为10;注意char与varchar的区别,前者在写入字段后,如果没有等于位数的最大值,

那么会在后面补上空格,直至最后。

2.查询的相关操作

查询有多少个库 show databases;

查询某库有多少个表 show tables; (需要先进入库中)

查看表结构  desc 表名;

查询表的内容 select * from 表名;(*表示查询所有字段内容,也可以将*替换为你需要的字段,如下面的例子。)

mysql> select * from sixgod;
+------+--------+
| id   | name   |
+------+--------+
|    1 | sixgod |
|    2 | yjj    |
|    3 | a      |
|    3 | b      |
|    3 | y      |
|   12 | a      |
|   12 | a      |
|  122 | b      |
|  122 | y      |
|  122 | yy     |
|    1 | yyy    |
+------+--------+
11 rows in set (0.00 sec)

mysql> select name from sixgod;
+--------+
| name   |
+--------+
| sixgod |
| yjj    |
| a      |
| b      |
| y      |
| a      |
| a      |
| b      |
| y      |
| yy     |
| yyy    |
+--------+
11 rows in set (0.00 sec)

将查询到的结果按照某字段进行升降序排列  select * from 表名 order by 字段名 asc/desc;

mysql> select * from sixgod order by id asc;  #(以id进行升序排列,默认为升序,asc也可以不写。)
+------+--------+
| id   | name   |
+------+--------+
|    1 | sixgod |
|    1 | yyy    |
|    2 | yjj    |
|    3 | a      |
|    3 | b      |
|    3 | y      |
|   12 | a      |
|   12 | a      |
|  122 | b      |
|  122 | y      |
|  122 | yy     |
+------+--------+

11 rows in set (0.00 sec)

mysql> select * from sixgod order by id desc; #(以id进行降序排列)
+------+--------+
| id   | name   |
+------+--------+
|  122 | yy     |
|  122 | b      |
|  122 | y      |
|   12 | a      |
|   12 | a      |
|    3 | a      |
|    3 | b      |
|    3 | y      |
|    2 | yjj    |
|    1 | sixgod |
|    1 | yyy    |
+------+--------+

11 rows in set (0.00 sec)

where条件的查询 select 列名  from 表名 where 条件判断;

如:查询name字段等于a的。

mysql> select * from sixgod where name='a';
+------+------+
| id   | name |
+------+------+
|    3 | a    |
|   12 | a    |
|   12 | a    |
+------+------+
3 rows in set (0.00 sec)

group by 分组:将所有相同的名字分组

mysql> select name,count(name) from sixgod  group by name;(count表示重复的有多少个)
+--------+-----------+
| name   | count(name) |
+--------+-----------+
| a      |         3 |
| b      |         2 |
| sixgod |         1 |
| y      |         2 |
| yjj    |         1 |
| yy     |         1 |
| yyy    |         1 |
+--------+-----------+

limit 分页显示 

mysql> select * from sixgod  limit 5;(只显示5条记录)
+------+--------+
| id   | name   |
+------+--------+
|    1 | sixgod |
|    2 | yjj    |
|    3 | a      |
|    3 | b      |
|    3 | y      |
+------+--------+

5 rows in set (0.00 sec)

3.增加的相关操作

insert into 表名(字段名) values(字段对应的值1),(2),(3);如果是一次添加多条记录则在后面继续写

mysql> insert into sixgod(id,name) values(100,'a'); (添加一条id为100,name为a的记录)
Query OK, 1 row affected (0.00 sec)

4.修改的相关操作

update 表名 set 列名='修改后的值' where 列名='值';

mysql> update sixgod set name='aa' where name='a'; 

将name字段等于a的修改为aa。

5.删除的相关操作

truncate  表名;只清除数据,不删除表结构 

drop   表名; 删除表结构

6.给用户赋权
grant all privileges on *.* to 'user1'@'%' identified by '123456' with grant option;

用户user1可以对所有的库,所有的表进行增删改查等,并且可以对其他用户进行授权。

grant all privileges on *.* to 'user1'@'%' identified by '123456' ;

用户user2只可以对所有的库,所有的表进行增删改查等。

7.索引

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

为表添加索引:create index 库名_表名_列名1_列名2  on表名(列名1, 列名2);

查看某表的索引:show index from 表名;

查看索引是否被使用到:mysql> explain select * from xuesheng where name='a';(在语句前加上explain)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值