zoukankan      html  css  js  c++  java
  • mysql/mariadb学习记录——创建删除数据库、表的基本命令

    查看已有的数据库:

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | test               |
    +--------------------+
    2 rows in set (0.05 sec)

    新建数据库语句:

    mysql> create database wzu;
    Query OK, 1 row affected (0.05 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | test               |
    | wzu                |
    +--------------------+
    3 rows in set (0.05 sec)

    要对某个数据库进行操作时首先要选中这个数据库,使用use <dbname>:

    mysql> use wzu
    Database changed

    创建表格:

    命令:create table <表名> ( <属性名 属性类型 [修饰]> );

    create table student(sno char(9) primary key,sname char(20) unique,ssex char(2),sage smallint, sdept char(20));
    create table course(cno char(4) primary key,cname char(40) not null,cpno char(4),ccredit smallint,foreign key(cpno) references course(cno));
    create table sc(sno char(9),cno char(4),grade smallint,primary key(sno,cno),foreign key(sno) references student(sno),foreign key(cno) references course(cno));

    删除表格:

    命令:drop table <表名>;

    mysql> drop table emp;
    Query OK, 0 rows affected (0.41 sec)

    查看数据库中有哪些表格:

    mysql> show tables;
    +---------------+
    | Tables_in_wzu |
    +---------------+
    | course        |
    | sc            |
    | student       |
    +---------------+

    更改外键约束:

    1 set foreign_key_checks=0;  //忽略外键检查
    2 set foreign_key_checks=1; //重启外键检查

    更改表中某属性的数据类型:

    命令:alter table <表名> modify <需要更改的属性> <想要更改的类型>;
    如:student 表中的sno字段改成varchar(11)

    mysql> alter table student modify sno varchar(11);
    Query OK, 0 rows affected (0.15 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    可以用desc <表名> 来查看表格结构:

    mysql> desc student;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | sno   | varchar(11) | NO   | PRI |         |       |
    | sname | varchar(20) | YES  | UNI | NULL    |       |
    | ssex  | varchar(2)  | YES  |     | NULL    |       |
    | sage  | smallint(6) | YES  |     | NULL    |       |
    | sdept | varchar(20) | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+

    表格插入数据:

    命令:insert into <表名> values( 填,入,相,应,的,值 );

    1 insert into student values('1024','测试','','18','CS');

    删除一行数据:

    命令:delete from <表名> where [条件];

    1 mysql> delete from emp where empno='232';

    修改一行数据:

    命令:update <表名> set [属性名]=[值] [where] [条件]

    1 mysql> update course set cpno=null where cpno='NULL';

    表格中的简单数据查询:

    select * from [表名]
    如:select * from student;
    * 表示查询表格中所有的列,也可以用列名加','隔开来选择自己需要的数据

    mysql> select * from student;
    +-------------+--------+------+------+-------+
    | sno         | sname  | ssex | sage | sdept |
    +-------------+--------+------+------+-------+
    | 1024        | 测试    | 男   |   18 | CS    |
    | 1621116     | 周帅    | 男   |   21 | CS    |
    +-------------+--------+------+------+-------+
    
    mysql> select sno,sname from student;
    +-------------+--------+
    | sno         | sname  | 
    +-------------+--------+
    | 1024        | 测试    |
    | 1621116     | 周帅    |
    +-------------+--------+

    给已创建的表格增加一栏属性:

    alter table <表名> add <属性名> <属性域>;
    如:

    mysql> alter table dept add type varchar(11);
    Query OK, 4 rows affected (0.62 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> desc dept;
    +--------+--------------+------+-----+---------+-------+
    | Field  | Type         | Null | Key | Default | Extra |
    +--------+--------------+------+-----+---------+-------+
    | deptno | decimal(2,0) | NO   | PRI | NULL    |       |
    | dname  | varchar(14)  | NO   |     | NULL    |       |
    | loc    | varchar(13)  | YES  |     | NULL    |       |
    | type   | varchar(11)  | YES  |     | NULL    |       |
    +--------+--------------+------+-----+---------+-------+

    在已创建的表格中删除一栏属性:

    alter table <表名> drop <属性名>;
    如:

    mysql> alter table dept drop type;
    Query OK, 4 rows affected (0.57 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> desc dept;
    +--------+--------------+------+-----+---------+-------+
    | Field  | Type         | Null | Key | Default | Extra |
    +--------+--------------+------+-----+---------+-------+
    | deptno | decimal(2,0) | NO   | PRI | NULL    |       |
    | dname  | varchar(14)  | NO   |     | NULL    |       |
    | loc    | varchar(13)  | YES  |     | NULL    |       |
    +--------+--------------+------+-----+---------+-------+

    当发现一个操作有warning时 可以通过show warnings;来查看警告信息:

    mysql> show warnings;
    +---------+------+-----------------------------------------------------------------------------------+
    | Level   | Code | Message                                                                           |
    +---------+------+-----------------------------------------------------------------------------------+
    | Warning | 1366 | Incorrect string value: 'xE6x9Dx8ExE5x8Bx87' for column 'sname' at row 1    |
    | Warning | 1366 | Incorrect string value: 'xE7x94xB7' for column 'ssex' at row 1                 |
    | Warning | 1366 | Incorrect string value: 'xE6x95xB0xE6x8DxAE...' for column 'cname' at row 1 |
    +---------+------+-----------------------------------------------------------------------------------+

    此处的问题主要是因为插入的编码格式不兼容(插入的数据编码为utf8 表格的编码为latinl)

    解决方法见mysql/mariadb学习过程中出现的问题与解决

    mysql查看当前选择的数据库:

    mysql> select database();
    +------------+
    | database() |
    +------------+
    | groupdb    |
    +------------+
    //或者:

    mysql> show tables;
    +-------------------+
    | Tables_in_groupdb |//此处为当前数据库
    +-------------------+
    | course            |
    | dept              |
    | emp               |
    | jwc               |
    | salgrade          |
    | sc                |
    | student           |
    | temp              |
    +-------------------+

    //或者:

    mysql> status;
    --------------
    mysql Ver 14.14 Distrib 5.7.14, for Win64 (x86_64)

    Connection id: 2721
    Current database: groupdb //此处为当前数据库
    Current user: group@122.228.131.86
    SSL: Not in use
    Using delimiter: ;
    Server version: 5.5.56-MariaDB MariaDB Server
    Protocol version: 10
    Connection: AAA.AAA.AAA.AAA via TCP/IP
    Server characterset: utf8
    Db characterset: utf8
    Client characterset: utf8
    Conn. characterset: utf8
    TCP port: 3306
    Uptime: 2 days 5 hours 25 min 51 sec

    Threads: 2 Questions: 549 Slow queries: 0 Opens: 26 Flush tables: 2 Open tables: 44 Queries per second avg: 0.002

     2018-04-30

    判断一个值是否为NULL:

    使用 is 关键字而不能用 = 来判断

    mysql> select * from course where cpno is null;
    +-----+--------------+------+---------+
    | cno | cname        | cpno | ccredit |
    +-----+--------------+------+---------+
    | 2   | 高等数学      | NULL |       2 |
    | 6   | 数据处理      | NULL |       2 |
    +-----+--------------+------+---------+
    2 rows in set (0.05 sec)
    
    mysql> select * from course where cpno is not null;
    +-----+--------------+------+---------+
    | cno | cname        | cpno | ccredit |
    +-----+--------------+------+---------+
    | 1   | 数据库        | 5    |       4 |
    | 3   | 信息系统      | 1    |       4 |
    | 4   | 操作系统      | 6    |       3 |
    | 5   | 数据结构      | 7    |       4 |
    | 7   | C语言         | 6    |       4 |
    +-----+--------------+------+---------+
  • 相关阅读:
    【今日CV 视觉论文速览】 19 Nov 2018
    【numpy求和】numpy.sum()求和
    【今日CV 视觉论文速览】16 Nov 2018
    【今日CV 视觉论文速览】15 Nov 2018
    poj 2454 Jersey Politics 随机化
    poj 3318 Matrix Multiplication 随机化算法
    hdu 3400 Line belt 三分法
    poj 3301 Texas Trip 三分法
    poj 2976 Dropping tests 0/1分数规划
    poj 3440 Coin Toss 概率问题
  • 原文地址:https://www.cnblogs.com/joy9707/p/8974435.html
Copyright © 2011-2022 走看看