MySQL 语句命令的使用

来源:互联网 发布:约瑟夫环java简单实现 编辑:程序博客网 时间:2024/05/15 23:45

MySQL   语句命令的使用

数据库的创建:create database 数据库名;不区分大小写,与所用的系统有关,文件夹不分,一般情况下,在创建数据库的时候,加上if not exists ,

            createdatabase if not exists Car;

 

显示当前数据库:show database;

 

设置字符集和校对规则:create database if not exists 数据库名

                     character set 字符集名

                     collate  校对规则

               例子:create database if not exists xsm;

                    character set utf8;

                    collate utf8_general_ci;

 

显示服务器上所支持的字符集和校对规则:

       show character set;显示的是服务器上所支持的字符集和默认的校对规则

        show collation like 'gb2312';凡是显示指定字符集的都显示出来

 

显示指定库的字符编码:

        show create database  数据库名;

 

   注:如果系统的字符编码和数据库的字符编码不一样,则会出现乱码。所以,在设置字符的同时,要把字符编码集设好:

set character_set_client='gbk';  修改字符编码集,默认的编码是gbk,但数据库结束 是utf8,会造成乱码

set character_set_results='gbk';  返回的时候也是utf8,索引修改为gbk

 

数据库的修改: alter  修改

    数据库修改的是参数,不能修改数据库的名字 

    alter database xsxxm;

    default character set Latin1;//修改字符集为默认

 

    alter database xsxxm;

    character set Latin1;

    collate Latin1_swedish_ci;

 

数据库的删除:  drop  删除

    drop database xsxxg;

    drop database if exists xsxxg;//判断在存在的情况下删除  不会出错

 

在数据库中创建表:

    创建表之前要启动数据库,即开启数据库---------- use  数据库名

显示当前数据库的表格:show tables;

                     show tables from 数据库名;  是显示指定数据库中的表结构

                   show create table 表名;    是显示创建表的属性

创建表:

    create table[ifnot exists] 表名(列名类型 选项,列名 类型 选项,列名 类型 选项); 建表  

    create table xs(id int,name char(10),sex bool,agetinyint,score int);

    选项是指:

        (1) not null   null(默认的为空)

        (2) default 默认值

(3) primary key  指定某一列是否为主键 主键的列一定不为空,可把not null去掉

        (4) unique key  唯一性,与主键的唯一区别是可以为空

 类型有:

   date   ‘1990-01-09’

  char   int  byte(sex)

  varchar    可变的字符

例子:

  char(3);类型为字符类型的,是定长的,多舍,少加空格

  varchar(30);变长的,30表示的是字符串最多能够存30个,少了不会补空格

 

创建临时的表------- temporary:

    create temporary table t1(int id,name char(10));

        临时表只对当时创建的有效,数据库关了之后在启动就没有了。

 

查看表的结构:

    show columns fromxs; 查看当前的数据库的表的结构

    show columns from tab1 from xsm; 查看指定数据库xsm中的表tab1的结构

    show columns from xsm.tab1;  查看指定数据库xsm中的表tab1的结构

 

表格中插入数据

    要求:如果该类为primarykey  则该列不能为空

        有默认值的列,在插入时可用default

        允许为null的列,在插入时可以使用null

 

        如果插入数据时,并没有给每个列都提供值,则不能省去列名表

        insert into xs(sid,sname)values('123444','张个');

        insert [into] 表名(列表名)values(列表所在的位置);

        insert into xs(sid,sname,ssex,sbirthday,memo)values('101101','张宏',1,'1980-6-4','该同学的特长是跑步')   

        在插入数据时,当我们把每一列都提供了值,可以缺省列表名

        insert into xs values(1,'张三',0,18,98);

        insert into xs(id) values(1);//插入指定的列,在表名后加括号,指定要加入的列

        insert into xs(id) values(1,null);和insert into xs(id) values(1);一样,是在没有设为空时,系统会自动设为空

 

      插入多行数据

    insert into xs

(sid,sname,ssex)values('101120','aaa',1),('101121','bbb',1),('101122','ccc',0);       第二种:通过set语句指明要插入的每一行记录中每一列的值

            insertinto xs

            setsid='1001025',sname='ddd',ssex=0;

 

        替换:  replace into xs

           values('100015','rtyy',0)

 

修改列表:

 (1) 增加列

    alter table 表格名

    add column 列名 列类型  特性;

    add column age tinyint unsigned; unsigned 是无符号类型,写入年龄时不能是负数,只能是大于等于0的数。

        add column sex tinyint notnull;//修改表格的结构---添加性别列,column是表示列

        add column sex tinyint not nulldefault 0;默认值为0

        add column idcard char(18)unique after sname;   unique 代表唯一性,在sname后面插入,默认插入是末尾

 

        add column score float(8,3);//8是显示的长度,3是小数点之后的位数,如果多余3位,四舍五入

 

        alter table ta

        add column score int(8)zerofill     int(8) 是显示的宽度,当显示的宽度小于8时,用0补,如果大于8时,长度原样显示

       

        decimal(10,4)     numeric(10,3)

   

       (2)对已有列的修改 :设置、删除字符段的默认值    修改已有列的名字、修改已有列的类型以及特性

        alter table xs

        alter column sbirthdayset  default '1990-2-2';  设置默认值

 

        alter table xs

        alter column ssex dropdefault;  删除默认值

 

 

          修改已有列的名字、修改已有列的类型以及特性   

        alter table xs

        change column memo(旧的) smemo(新的) text; //change即可修改名字也可修改类型

        rename table memo tosmemo   修改表的名字

 

        alter tables xs  

        modify column smemovarchar(200) not null; //修改列的类型

   

        alter ignore tablesxs   

        modify column smemovarchar(200) not null; //修改列的类型,不为空是修改不成功的

            ignore是对不需要的数据删除

       

    (3)删除已有的列:

        alter table xs

        drop column credit;

 

    (11)删除表中的数据:

        delete from xs; //删除所有的数据

         删除符合条件的行

            deletefrom xs

            wheressex=1;

 

            deletefrom xs

            wheresid='101120';

 

            deletefrom xs

            wherescredit>60;

 

           truncate是截断,在删除后是释放了内存中的存储页

           truncate table xs;//删除表格中的所以数据 和deletefrom xs效果 一样,但truncate table xs的效率高

 

    (12)修改表格中的数据:

        update xs

        set ssex=1  

        where sid='101122';  //修改的条件

 

        update xs

        set sbirthday='1990-8-1'

        where ssex=0;

 

        update xs

        set scredit=scredit+10;//都加十分

 

    (13)给表格重命名:

        alter table xs

        rename to 表名;

    (14)修改表名命令:

        rename table student to xs;

    (15)表格的删除:

        drop table [if exists] xsm;

       

    (16)所有show 命令:

        show databases;

        show tables;

        show columns from 表名; //显示当前数据库的结构

        show columns from 表名 from 数据库   //显示指定数据库的结构

        show columns from 数据库.表名  //显示指定数据库的结构

        show create databaseschool   显示创建数据库school的详细语句

        show create tablexs   显示创建数据库中表xs的详细语句

 

原创粉丝点击