• Mysql基本操作


    Mysql基本操作

    输入mysql -u root -p登陆,会要求你输入密码,第一次登陆没有密码,按回车即可

    show databases; 打印数据库里有多少个数据库

    use mysql; 进入数据库

    show tables; 查看table

    desc user; 查看表的结构
    show columns form user; 查看数据库
    create database lscdb; 创建数据库
    show create database lscdb; 查看数据库字体
    create database lscdb charset utf8; 并设置为utf8
    mysql> create table student(创建一个表
    -> id int auto_increment, 递增
    -> name char(32) not null,
    -> age int not null,
    -> register_date date not null,
    -> primary key (id));


    drop database lscdb; 删除数据库

     

    插入数据
    insert into student (name,age,register_date)values("lsc",20,"2017-6-13");
    查询
    select * from user; 查看所有的数据
    select * from student limit 2;查看前两条数据
    select * from student limit 2 offset 1;从第一条往后查
    select * from student where id >2; 加条件 and 和
    select * from student where register_date like "2016-02%";模糊查询like 后面用%代替
    select * from userG: 竖着 可读
    select User from user; 查看有多少个用户
    show grants for lsc; 查看对数据库的权限
    修改
    update student set name="lph",age=33 where id=4;
    删除 
    delete from student where name="lph";
    排序
    select * from student order by id desc; desc:升序 asc:降序
    统计
    select name,count(*) from student group by name; 统计数量
    select name,sum(age) from student; 
     select name,sum(age) from student group by name with rollup; 统计/NULL总和
    select coalesce(name,"总和"),sum(age) from student group by name with rollup; 把NULL 换一个名字

    修改表字段 alter table 
    增加字段 
    alter table student add sex enum("M","F");
    删除字段
    alter table student drop sex;
    修改字段
    alter table student change age ages char(32) not null default "X";

    添加主键:

    alter table 表名 add primary key;

    删除主键:

    alter table 表名 drop primary key;

    添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段)references 主表(主键字段)

    删除外键:alter table 表名 drop foreign key 外键名称


    创建一个用户
    use mysql;
    grant all on +名字.* to 'lsc'@'%'identfied by 'cong0213';
    gtant 授权 ALL 所有 on .* 下面所有的表 to 'lsc'@'%' lsc:用户 %:所有的机器 idertified by 'cong0213' 密码

    mysql> grant select,insert,update,delete,create,drop
    -> on tutorials.*
    -> to 'lsc'@'%'
    -> identified by '123456';

    select:查
    insert:插入
    update:修改
    delect:删除
    create:创建
    drop: 删除
    insert into user

    grent select,insert,update,delete,create,drop

    外键

     

    在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。
    外键的使用条件:
    1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);
    2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 
    3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;

     

    外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作;

     

    CREATE TABLE dage (

       id int(11) NOT NULL auto_increment,

       name varchar(32) default '',

       PRIMARY KEY  (id)

     ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

     

     CREATE TABLE xiaodi (

       id int(11) NOT NULL auto_increment,

       dage_id int(11) default NULL,

      name varchar(32) default '',

      PRIMARY KEY  (id),

      KEY dage_id (dage_id),

      CONSTRAINT xiaodi_ibfk_1 FOREIGN KEY (dage_id) REFERENCES dage (id)

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

     

     

     

     

    定义主键和外键主要是为了维护关系数据库的完整性,总结一下:
    1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。

    身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 
    2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。

    比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

      主键在物理层面上只有两个用途:

            1. 唯一地标识一行。

            2. 作为一个可以被外键有效引用的对象。

      基于以上这两个用途,下面给出了我在设计物理层面的主键时所遵循的一些原则:

            1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。

            2. 主键应该是单列的,以便提高连接和筛选操作的效率。

         3. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。

      4. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

            5. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。

     

  • 相关阅读:
    1869六度分离
    hdu 2066 一个人的旅行
    HDU1424搬寝室
    poj 1511 Invitation Cards
    hdu 3999The order of a Tree
    hdu 2680 Choose the best route
    Hdu 3117 Fibonacci Numbers
    hdu 2962 Trucking
    钽电容黑色和黄色的区别
    ALTER FPGA通过软件设置上拉(转)
  • 原文地址:https://www.cnblogs.com/liushaocong/p/8340476.html
Copyright © 2020-2023  润新知