zoukankan      html  css  js  c++  java
  • Python进阶_mysql(1)

    什么是数据库?

    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

    进入mysql (linux 操作数据库) 

    本地连接:
    mysql -u用户名 -p
    输入密码 qwe123
    
    mysql -uroot -pqwe123

    创建用户

     创建用户即创建一个数据库

    #创建用户
    mysql> CREATE USER 'jianeng'@'%' IDENTIFIED qBY 'qwe123';
    #给用户赋予权限
    mysql> GRANT ALL  ON *.* TO 'jianeng'@'%';
    #使更改立即生效
    mysql> FLUSH PRIVILEGES;
    #退出
    mysql> q

    查看在哪个数据库里:SELECT DATABASE(); 大厅 null

    查看当前用户:SELECT USER();

    查看有哪些数据库:SHOW DATABASES; # mysql 有哪些数据库

    我们通过一张图来开始数据库的相关操作

    首先我们需要创建一个history_book的数据库

    create database [if not exists]`db_name`;
    mysql>create database [if not exists]`history_book`;
    Query OK, 1 row affected (0.00 sec)
    mysql>create database [if not exists]`history_book`;
    ERROR 1007 (HY000): Can't create database 'mydb'; database exists

    这时候,我们完成了创建一个history_book的一个图书馆。如果存在相=相同名字的数据库的话会报错

    我们会查看数据库里面的内容: show databases;

    mysql> SHOW DATABASES;
    +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | history_book | +--------------------+

    这时会发现创建的数据库已经存在了

    对于不需要的数据库我们需要删除数据库

    drop database [if exists] `db_name`;

    注意:SQL语句必须以分号结尾    mysql不区分大小写

    现在我们可以进入我们创建的数据库了:

    use db_name;

    我们可以查看数据库里面的信息:

    select database();

    后会发现当前并没有进入到某个数据库中,需要使用use来进入某个数据库中。

    mysql> use history_book;
    Database changed
    mysql> select database();
    +--------------+
    | database()   |
    +--------------+
    | history_book |
    +--------------+
    1 row in set (0.00 sec)

     我们只是创建了一个数据库,但里面什么也没有。相当于我们创建了一个空的图书馆。

    我们需要做的就是想空的图书馆里面放书架(即 为history_book 创建表)

    创建数据表

    create table [if not exists] table(id int , name  varchai(20));

    mysql> create table tang_book(
        -> id int,
        -> name varchar(20));
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> create table song_book( id int, name varchar(20));
    Query OK, 0 rows affected (0.06 sec)
    
    mysql> create table qing_book( id int, name varchar(20));
    Query OK, 0 rows affected (0.04 sec)

    我们为history_book 创建了书架。

    查看history_book的书架。

    查看数据库中的表

    数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础

    查看数据表列表SHOW TABLES [FROM db_name]

    SHOW TABLES查看当前数据库中的数据表。

    SHOW TABLES FROM 'mysql'查看mysql这个数据库中的数据表。

    mysql> show tables from history_book;
    +------------------------+
    | Tables_in_history_book |
    +------------------------+
    | qing_book              |
    | song_book              |
    | tang_book              |
    +------------------------+
    3 rows in set (0.00 sec)

    数据类型:INT 整数类型    VARCHAR 变长字符串

    查看书架(表)的结构

    查看创建的表:

    SHOW CREATE TABLE tb_name;(G) 表的创建详情

    mysql> mysql> show create table tang_book;
    +-----------+-----------------------------------------------
    | Table     | Create Table                                  
    +-----------+-----------------------------------------------
    | tang_book | CREATE TABLE `tang_book` (
      `id` int(11) DEFAULT NULL,
      `name` varchar(20) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    +-----------+-----------------------------------------------
    1 row in set (0.00 sec)

    查看表的结构:

    desc tb_name;

    mysql> desc tang_book;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | id    | int(11)     | YES  |     | NULL    |       |
    | name  | varchar(20) | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)

    删除表:

    drop table tablename;

    到目前为止,我们发现我们只是搭建了一个历史图书馆和几个书架,没有一本书。即我们没有存入一个数据。接下来,我们就要为我们的图书馆存入书籍。

    单表中数据的增、删、查、改

    INSERT 插入数据

    方法一:

    INSERT [INTO] table_name [(column_name,...)] 
    {VALUES|VALUE} ({expr|DEFAULT},...),(...),...;

    方法二:

    INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},...in

    SELECT 查询数据

     SELECT * FROM tab_name [WHERE];

    mysql> insert into tang_book(id,name) values(1,'book_1'),
        -> (2,'book'),
        -> (3,'book_3'),
        -> (4,'book_4');
    Query OK, 4 rows affected (0.07 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> select * from tang_book;
    +------+--------+
    | id   | name   |
    +------+--------+
    |    1 | book_1 |
    |    2 | book   |
    |    3 | book_3 |
    |    4 | book_4 |
    +------+--------+
    4 rows in set (0.01 sec)

    当发现表中数据有问题的时候我们可以更新表中的数据

    UPDATE 更新数据

    UPDATE tb_name
    SET col_name1={expr1|DEFAULT}[,col_name2

    ={expr2|DEFAULT}]...
    [WHERE where_condition];

    mysql> update tang_book set name='book_2' where id=2;
    Query OK, 1 row affected (0.02 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from tang_book;
    +------+--------+
    | id   | name   |
    +------+--------+
    |    1 | book_1 |
    |    2 | book_2 |
    |    3 | book_3 |
    |    4 | book_4 |
    +------+--------+
    4 rows in set (0.01 sec)

    DELETE 删除数据

    DELETE FROM tbl_name [WHERE where_conditon]; 

    一定要注意:不添加WHERE则会删除全部记录, 很危险

    下面介绍一下mysql中的数据类型

    # mysql 数据类型
    整型   浮点型   日期类型   字符型
    
    mysql> create table tb2(
        -> id INT,
        -> name VARCHAR(20),     #指定长度,最多65535个字符。   ***变长
          -> sex CHAR(4),         #指定长度,最多255个字符。     ***定长
        -> price DOUBLE(4,2),    #双精度浮点型,m总个数,d小数位
          -> detail text,            #可变长度,最多65535个字符
        -> dates DATETIME,        #日期时间类型 YYYY-MM-DD HH:MM:SS
        -> ping  ENUM('好评','差评')  #枚举, 在给出的value中选择
        -> );
     
    
    
    
  • 相关阅读:
    《有毒》读后感 读书笔记
    《自动时代》读后感 读书笔记
    HTML 中有用的字符实体
    input 光标在 chrome下不兼容 解决方案
    form注册表单圆角 demo
    横向导航二级菜单
    鼠标悬浮,下拉菜单,距离一定距离
    纵向折叠二级菜单(无限点击)
    纵向折叠二级菜单
    纵向导航二级弹出菜单
  • 原文地址:https://www.cnblogs.com/fangfang31140519/p/8859034.html
Copyright © 2011-2022 走看看