zoukankan      html  css  js  c++  java
  • MySQL数据库基本操作

    ##########################

    今天来说一下MySQL数据库的一些基本操作

    ##########################

    1.创建数据库

      create database db1;  //db1是数据库名

    2.查看当前存在的数据库

      show database db1;

    3.查看数据库定义

      show create database db1;

    4.选择数据库

      use db1;

    5.删除数据库

      drop database db1;

    6.创建表(一个表描述的是一件事情)

      create table 表名

      (

        列名 数据类型 [约束],

        ...

      );

      列名:命名规则同Java;数据类型:参见列表;约束:约束的是值,分为主键约束、外键约束、非空约束、唯一约束、默认约束

      1)主键约束:要求主键列的数据是唯一,且不允许为空。

          单字段主键:字段名 数据类型 primary key

          多字段联合主键:primary key [字段1,...,字段n]

      2)外键约束:用来在两个表之间建立连接。

          格式:constraint 外键名 foreign key 字段名 references 主表名(主键列)

     1 CREATE TABLE classinfo
     2 (
     3    classid INT PRIMARY KEY,
     4    classname VARCHAR(6)
     5 );
     6 CREATE TABLE stuinfo
     7 (
     8    stuid INT PRIMARY KEY,
     9    stuname VARCHAR(6),
    10    stusex CHAR(1),
    11    classid INT,
    12    ##添加外键
    13    FOREIGN KEY(classid) REFERENCES classinfo(classid)    
    14 );
    15 COMMIT;
    16 ROLLBACK;

      3)非空约束:指字段值不能为空。

          格式:字段名 数据类型 not null

      4)唯一约束:要求该列值唯一,允许为空,但只能出现一个空值。

          格式:字段名 数据类型 unique

      5)默认约束:指定某列的默认值。

          格式:字段名 数据类型 default 默认值

      6)设置表的属性值自增:一个表只能有一个字段使用自增约束,且该字段必须为主键的一部分。

          格式:字段名 数据类型 auto_increment

    1 CREATE TABLE students
    2 (
    3    stu_no INT PRIMARY KEY AUTO_INCREMENT,    ##标识列    incremeny
    4    stu_name VARCHAR(4) NOT NULL,
    5    stu_sex CHAR(1) CHECK(stu_sex=''OR stu_sex=''),
    6    stu_age INTEGER,
    7    stu_phone VARCHAR(11) UNIQUE NOT NULL,
    8    stu_bri DATE 
    9 );

    7.创建临时表

      create temporary table a ();

    8.查看表基本结构语句

      describe 表名 / desc 表名

      查看表的详细结构语句:show create table G 表名

    9.修改表名

      alter table 旧表名 rename 新表名;

    10.修改字段的数据类型

      alter table 表名 modify 字段名 数据类型

    11.修改字段名

      alter table 表名 change 旧字段名 新字段名 新数据类型;

    12.修改表语句

      alter table 表名 add 新字段名 数据类型 [约束条件] [first | after 已存在字段名];

      alter table 表名 drop 字段名;

    13.修改字段的排列位置

      alter table 表名 modify 字段1 数据类型 first | after 字段名2;

    14.更改表的存储引擎

      alter table 表名 engine=更改后的存储引擎名;

    15.删除表的外键约束

      alter table 表名 drop foreign key 外键约束名;

    16.删除表

      drop table 表名;

    17.插入数据

    #单行插入:INSERT  INTO  表名  (列字段列表)  VALUES(值内容列表);
    #1.按照列字段顺序插入
      INSERT INTO students(stu_no,stu_sex,stu_name,stu_age)VALUES(NULL,'','李四',23);
    #2.按照物理顺序插入
      INSERT INTO students VALUES(3,'王五','',22);
    #3.插入部分列的数据,其他列必须允许为空
      INSERT INTO  students(stu_name,stu_phone)  VALUES('马六','13477778888');
    #多行插入:注意标识列不支持
      INSERT   INTO   表名  (列字段列表)  VALUES(),...,();
      INSERT   INTO   表名  (列字段列表) SELECT  值内容列表 FROM 表名 WHERE 条件;

    18.更新数据

    1 UPDATE 表名 SET  列名 = 值 , ....列名 =WHERE 条件;
    2   例:UPDATE students SET stu_age=21 ,stu_bri='1997-09-11' WHERE stu_no=6;

    19.删除数据

    1 DELETE FROM 表名 WHERE 条件;
    2     例:DELETE FROM students WHERE stu_no>3;

    20.表的复制

    1 #1.创建表复制
    2   CREATE TABLE 新表 AS SELECTFROM 旧表 [WHERE 条件];
    3   CREATE TABLE new_user AS SELECT userid,username,useraddress FROM userinfo WHERE userage>30; 
    4 #2.插入数据时复制
    5   INSERT INTO  新表 (列字段) SELECT 列字段 FROM 旧表 [WHERE 条件];
    6   INSERT INTO new_user SELECT userid,username,useraddress FROM userinfo ;
  • 相关阅读:
    warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
    warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
    535 5.7.8 Error: authentication failed: generic failure安装EMOS时SMTP测试报错
    mysql-libs版本冲突卸载不了
    history
    CentOS 7 / RHEL 7 运行单用户模式进行root的密码重置
    chkconfig
    Linux主机名域名修改问题
    Mysql正常启动之后默认使用的文件
    解决mysql“Access denied for user 'root'@'localhost'”
  • 原文地址:https://www.cnblogs.com/mtxcat/p/14133446.html
Copyright © 2011-2022 走看看