美文网首页
MySQL--基础一

MySQL--基础一

作者: 昆仑草莽 | 来源:发表于2019-04-17 15:27 被阅读0次

    MySQL数据库是现在各个平台使用最多的数据库,他承载着大量网页的运行,是非常重要的数据库,SQL server,Oracle 等大中型数据库由于只用的要求很高(需要二次开发),费用昂贵,所以众多的小型企业更加倾向于MySQL的使用。

    MySQL基本结构:

    id name age sex tel
    1 John 18 M 13900000
    1 李连杰 28 M 13900000
    1 成龙 21 M 13900000
    1 陈佩斯 34 M 13900000
    这是一个典型的表格,有表头,数据组成。这也是所有关系型数据库的基本样式。

    从图中可以看出MySQL数据库可以有多个库,每个库可以有多个表组成。这也就是我们看的到的MySQL的基本结构。

    MySQL的库、表级操作

    有数据库就的有操作,下面我们来看MySQL数据库的操作--sql语句
    首先注意:
    1、sql语句不会严格的区分大小写,默认大写是程序代码,小写是程序员写的代码。
    2、语句结束符:每个语句都是以 ; 结束 或者以 \g 结束。
    3、数据类型:强制数据类型,每个数据都有自己的数据类型。
    4、逗号:创建表的时候最后一行不需要逗号。
    MySQL数据库的登陆操作:
    mysql -uroot -p

    server@ll:~$ mysql -uroot -p    #登陆数据库
    Enter password:      #填写MySQL数据库的root密码登陆
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 9
    Server version: 5.7.25-0ubuntu0.16.04.2 (Ubuntu)
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    mysql>exit  #exit 退出数据库
    Bye
    server@ll:~$
    

    库级操作语言实例:

    mysql>show databases;   #显示所有库
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
    
    mysql>create database if not exists db_name;   #创建库,if not exists 可选如果有重复创建库的话会报错,有if not exists 就不会报错。
    Query OK, 1 row affected (0.00 sec)
    
    mysql>show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | db_name            |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)
    
    mysql>use db_name; #进入数据库
    Database changed
    
    mysql>drop database if exists db_name; #删除库 if exists 与创建时if not exists相同
    Query OK, 0 rows affected (0.00 sec)
    mysql>
    

    库级操作语句:

    show databases; #显示库
    create database if not exists db_name; #创建库
    use db_name; #进入库
    drop database if exists db_name; #删除库
    

    表级操作语句实例:

    mysql>show tables; #显示所有表
    Empty set (0.00 sec)  #还没创建表就会显示空
    
    mysql>create table if not exists tb_name(  #创建表
        ->id int,
        ->name varchar(20),
        ->age tinyint);
    Query OK, 0 rows affected (0.29 sec)
    
    mysql>desc tb_name; #显示表字段信息
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | id    | int(11)     | YES  |     | NULL    |       |
    | name  | varchar(20) | YES  |     | NULL    |       |
    | age   | tinyint(4)  | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    
    mysql>show create table tb_name; #查询建表信息
    +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table   | Create Table                                                                                                                                                    |
    +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | tb_name | CREATE TABLE `tb_name` (
      `id` int(11) DEFAULT NULL,
      `name` varchar(20) DEFAULT NULL,
      `age` tinyint(4) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
    +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> select database(); #查询正在使用的表
    +--------------+
    | database()   |
    +--------------+
    | tb_name |
    +--------------+
    1 row in set (0.00 sec)
    
    mysql>drop table tb_name; #删除表
    Query OK, 0 rows affected (0.21 sec)
    mysql>
    mysql>
    

    表级操作语句:

    show tables; #显示所有表
    create table if not exists tb_name(create definition...); #创建表
    desc tb_name; #显示表字段信息
    show create table tb_name; #查询建表信息
    drop table tb_name; #删除表
    

    表中字段的操作:
    insert into table values() 插入字段 与 select * from tb_name; 查询字段

    mysql>inserter into tb_name(name,age)values('john',18); #指定字段插入
    Query OK, 0 rows affected (0.04 sec)
    
    mysql>insert into tb_name values(2,'tom',19); #全字段插入
    Query OK, 0 rows affected (0.04 sec)
    
    mysql>insert into tb_name values(3,'albert',20),(4,'bander',19); #多行插入
    Query OK, 0 rows affected (0.04 sec)
    
    mysql>select * from tb_name; #全字段查询
    +------+--------+------+
    | id   | name   | age  |
    +------+--------+------+
    | NULL | john   |   18 |
    |    2 | tom    |   19 |
    |    3 | albert |   20 |
    |    4 | bander |   19 |
    +------+--------+------+
    4 rows in set (0.00 sec)
    
    mysql>select name,age from tb_name;#指定字段查询
    +--------+------+
    | name   | age  |
    +--------+------+
    | john   |   18 |
    | tom    |   19 |
    | albert |   20 |
    | bander |   19 |
    +--------+------+
    4 rows in set (0.00 sec)
    
    mysql>select * from tb_name where age>=19; #带where的条件查询
    +------+--------+------+
    | id   | name   | age  |
    +------+--------+------+
    |    2 | tom    |   19 |
    |    3 | albert |   20 |
    |    4 | bander |   19 |
    +------+--------+------+
    3 rows in set (0.00 sec)
    
    mysql>
    

    表中数据插入,查询语句

    inserter into tb_name(field_name)values(field_values); #指定字段插入
    insert into tb_name values(all_values); #全字段插入
    insert into tb_name values(values1),(values2)...; #多行插入
    select * from tb_name; #全字段查询
    select field_name from tb_name;#指定字段查询
    select * from tb_name where condition; #带where的条件查询
    

    表中数据修改、删除
    updated 修改 与 delete 删除

    mysql>update tb_name set age=21 where name='tom'; #修改满足条件的数据
    Query OK, 1 rows affected (0.04 sec)
    
    mysql>update tb_name set id=1,name='rose',age=23; #修改多个数据
    Query OK, 4 rows affected (0.04 sec)
    
    mysql> select * from tb_name;
    +------+------+------+
    | id   | name | age  |
    +------+------+------+
    |    1 | rose |   23 |
    |    1 | rose |   23 |
    |    1 | rose |   23 |
    |    1 | rose |   23 |
    +------+------+------+
    4 rows in set (0.00 sec)
    注意:修改数据时候,一定要使用where条件,否则会全表全改。
    
    mysql> delete from tb_name where age=23; #删除满足条件的数据
    Query OK, 1 rows affected (0.05 sec)
    
    mysql> delete from tb_name ; #删除表的数据(全部)
    Query OK, 3 rows affected (0.05 sec)
    

    表中数据修改、删除语句:

    update tb_name set field_values where conditions; #修改满足条件的数据
    update tb_name set values1,values2,values3...; #修改多个数据
    delete from tb_name where conditions; #删除满足条件的数据
    delete from tb_name ; #删除表的数据(全部)
    

    MySQL数值类型:

    数值类型 特性
    tinyint 用一个字节存放整数(0,255)
    smallint 用两个字节(0,65535)
    mediumint 三个字节(0,16777215)
    int 四个字节(0,4294967295)
    bigint 八个字节
    Float(m,n) 单精度浮点型(四个字节)
    double(m,n) 双精度浮点数m总共个数,d小数位,(八个字节)

    MySQL字符类型:

    字符类型 特性
    char(size) 保存固定长度的字符串(包含字母数字以及特俗字符)。在括号中指定字符串长度,最多255个字符
    varchar(size) 保存可变长度的字符串(包含字母数字以及特俗字符)。在括号中指定字符串最大长度,最多255个字符,如果值的类型大于255,则被转换为text类型
    tinytext/tinyblob 用来存放较短文本数据/二进制数据,最大255
    text/blob 用来存放长文本数据/二进制数据,最大65535
    longtext/longblob 同上,区别在于最大存放4294967295
    enum enum数据类型实际上时包含多个固定值的列表,只能选择这些值,包括(null)例如:在某个字段包含'A','B'和'C'。必须这样定义:enum('A','B','C'),只有这些值和(null)可以填充到这个字段中。

    MySQL的时间类型:

    字符类型 特性
    date 时间格式:2019-01-01
    time 时间格式:08:30:30
    datetime 日期时间格式:2019-01-10 08:30:30
    timestamp 自动存储日期修改的时间
    year 存放年

    MySQL案列:

    mysql> create table tb_name(
        -> 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('goog','bad') #枚举, 在给出的value中选择
        -> );
    Query OK, 0 rows affected (0.29 sec)
    

    相关文章

      网友评论

          本文标题:MySQL--基础一

          本文链接:https://www.haomeiwen.com/subject/gragwqtx.html