Python/MySQL(一、基础)

时间:2021-01-10 23:39:39

Python/MySQL(一、基础)

mysql:
MYSQL : 是用于管理文件的一个软件 -socket服务端 (先启动)
-本地文件操作
-解析 指令【SQL语句】 -客户端软件 (各种各样的客户端【MYSQL 自带的客户端,自己创建的客户端】)
-socket客户端
-发送指令
-解析 指令 【SQL语句】 DBMS(数据库管理系统)
语法规则(SQL语句) 其他类似软件 :
关系型数据库:(有多个约束)
非关系型数据库(约束功能偏少)
 

关于连接:

 
创建用户:
mysql> create user 'meimei'@'%' identified by '123123';
Query OK, 0 rows affected (0.00 sec)

设置用户以及密码

修改用户:

mysql> rename user 'meimei'@'%' to 'ermei'@'%';
Query OK, 0 rows affected (0.00 sec)

修改用户密码:

1 mysql> set password for 'ermei'@'%'=password('3333');
2 Query OK, 0 rows affected, 1 warning (0.00 sec)

删除用户:

1 mysql> drop user 'ermei';
2 Query OK, 0 rows affected (0.00 sec)

查看设置的权限:

1 mysql> show grants for 'meimei'@'%';
2 +------------------------------------+
3 | Grants for meimei@% |
4 +------------------------------------+
5 | GRANT USAGE ON *.* TO 'meimei'@'%' |
6 +------------------------------------+
7 1 row in set (0.00 sec)

对用户设置目录的权限;

1 mysql> grant all privileges on  *.* to 'meimei'@'%';
2 Query OK, 0 rows affected (0.00 sec)

取消目录设置的权限;

1 mysql> revoke  all privileges on *.* from  'meimei'@'%';
2 Query OK, 0 rows affected (0.00 sec)

数据库操作(目录)

创建数据库(文件夹)

create database 数据库名称 default charset utf8;
mysql> create database tu default charset utf8;
Query OK, 1 row affected (0.00 sec) mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| b2 |
| mysql |
| performance_schema |
| sakila |
| sys |
| tu |
| world |
+--------------------+
8 rows in set (0.00 sec)

 删除数据库(文件夹)

drop  database 数据库名称;
mysql> drop database tu;
Query OK, 0 rows affected (0.00 sec)

创建数据夹(文件)

mysql> create table ll(id int auto_increment primary key,naem char(10))engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.56 sec)

删除数据夹(文件)

 mysql> drop table ll;
Query OK, 0 rows affected (0.23 sec)

数据表(文件内容)

增加文件内容: insert into 表名(表行名称) values(行内容)

mysql> insert into ll(id,naem) values(1,'alex');
Query OK, 1 row affected (0.06 sec)
删除文件内容
清空文件内容(继续自增)
mysql> delete from ll;
Query OK, 1 row affected (0.14 sec)

清空文件内容(重新自增)

mysql> truncate table ll;
Query OK, 0 rows affected (0.35 sec)

删除文件

mysql> drop table ll;
Query OK, 0 rows affected (0.20 sec)
 
mysql> show tables;
+--------------+
| Tables_in_b2 |
+--------------+
| jj           |
+--------------+
1 row in set (0.00 sec)
切换目录:
sue 目录名称
mysql> use b2;
Database changed

查看数据库目录:

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| b2 |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
7 rows in set (0.00 sec)

查看数据表:

show tables;
mysql> show tables;
+--------------+
| Tables_in_b2 |
+--------------+
| jj |
+--------------+
1 row in set (0.00 sec)

查看数据行;

select  *  from  表名;
mysql> use b2;
Database changed
mysql> select * from jj;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | xx | NULL |
| 2 | yy | NULL |
| 3 | zx | NULL |
| 4 | NULL | 11 |
+----+--------+------+
4 rows in set (0.00 sec)

设置主键(1。规范(不能重复且不能为空)2.运行速度快)

auto_increment primary key 
设置是否为空:
not null   (null)
mysql> create table ls(id int null) engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.44 sec)

设置引擎

engine=innodb  

设置编码

default charset=utf8         

设置外键

constraint fk_cc foreign key (color _id ) references color(nid)

bit【(M)】

二进制位(100010) m表示二进制位的长度(1-64),默认m=1

tinyint【(m)】【unsigned】【zerofill】

小整数,数据类型用于保存一些范围的整数数字范围;
有符号:
-128~127
无符号:
0~255
特别的;Mysql中无布尔值,使用tinyint(1)构造

int【(m)】【unsigned】【zerfodill】


整数,数据类型用于保存一些范围的整数数字范围;

                    有符号:

                         -214783648~2147483647

                    无符号:

                         0~429467295

 

               特别的:整数类型中的m仅用于显示,对存储范围无限制。例如:int(5),当插入数据2是,select时数据显示为:00002
 

bigint【(m)】【unsigned】【zerfodill】

  大整数,数据类型用于保存一些范围的整数数范围:
有符号: -9223372036854775808 ~ 9223372036854775807
无符号:
0 ~ 18446744073709551615

decimla[(m[,d])][unsigned][zerofill]

  准确的小数值,m是数字总个数(符号不算),d是小数点后个数。m最大值为65 d最大值为30
特别的:对与精确数值计算时需要用此类型
decaimal能够存储精确值的原因在于其内部按照字符串存储

 float【(M,D)】【unsigned】【zerofill】

单精度浮点数(非准确小数值),m是数字总个数,d是小数后个数
无符号: -3.402823466E+38 to -1.175494351E-38,
0
1.175494351E-38 to 3.402823466E+38
有符号:
0
1.175494351E-38 to 3.402823466E+38 **** 数值越大,越不准确 ****

 double【(M,D)】【unsig】【zerofill】

          双精度浮点数(非准确小数值),M是数字 总个数,d是小数点后个数

 无符号:
-1.7976931348623157E+308 to -2.2250738585072014E-308
0
2.2250738585072014E-308 to 1.7976931348623157E+308
有符号:
0
2.2250738585072014E-308 to 1.7976931348623157E+308
**** 数值越大,越不准确 ****

 char(m)

char 数据类型用于表示固定长度的字符串们可以包含最多达255个字符。其中m代表字符串的长度
即使数据小于m长度,也会占用m长度(会进行自动补全) varchar(10)

 varchar(10)

varchar数据类型用于变长的字符串,可以包含最对达255个字符,其中m代表该数据类型所允许保存的字符串最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中
注意:虽然varchar使用起来较为灵活(节省内容),但是从整个系统的 性能角度来说,char数据类型的处理速度更快,

text 

text数据类型用于保存变大字符串,可以组多到65535(2**16-1)个字符

mediumtext
A TEXT column with a maximum length of 16,777,215 (2**24 − 1) characters. longtext
A TEXT column with a maximum length of 4,294,967,295 or 4GB (2**32 − 1) characters.

 enum

枚举类型:
An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.)
ENUM列最多可以有65,535个不同的元素。(实际的极限小于3000。)
create table shirts(
name varchar(10)
size enum('x','x+','y','y+'))engine=innodb
insert into shirts(name,size) values('alex','y+') 在设置好的默认值范围中选择一个使用

set 

集合类型:

 A SET column can have a maximum of 64 distinct members
一个集合列最多可以有64个不同的成员
create table myset(col set('a','b','c','d'))
insert into myset (col) values('a,d,)('a,b')('d','b') 在设置好默认的范围中选择一个内容进行组合 使用

 DATE

DATE
YYYY-MM-DD(1000-01-01/9999-12-31)

 TIME

TIME
HH:MM:SS('-838:59:59'/'838:59:59')

 YEAR

YEAR
YYYY(1901/2155)

 DATETIME

YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59    Y)

 TIMESTAMP

        TIMESTAMP

            YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)