为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
与MySQL的零距离接触_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • PRIMARY KEY(主键约束)   一张表只能有一个  字段非空

    UNIQUE KEY(唯一约束)   一张表中可以有多个  字段可以为空值,如果为非空,只能插入一个值,所谓唯一嘛!(就是说UNIQUE KEY是约束字段里面的值得唯一性)

    特别说明: 1.UNIQUE KEY 当多个字段为空值时,就违背了唯一性,实际上,一张表中多个字段为空,最终保留的空值只有一个  2.如果为非空,只能插入一个值,所谓唯一嘛!


    查看全部
  • 字符型 

    查看全部
  • 修改数据库编码方式

    查看全部
    0 采集 收起 来源:操作数据库

    2018-05-04

  • 主键约束   key 或者 primary key   主键这个字段一般起名为id 数据类型一般为smallint

    主键可以被赋值但是不能有重复的值

       (1)每张表只能有一个主键

       (2)主键保证记录的唯一性

       (3)主键自动为 not null(字段自动禁止为空)

    自动编号: auto_increment   设置为主键的属性之一(可选属性,不要求必选)  

    (1)自动编号(auto_increment),且必须与主键(primary key)搭配使用,反之主键不一定非要设置auto_increment这个属性;

    (2)默认情况下,初始为1,每次增长量为1.

    (3)对应的字段设置必须是数值类型,若是浮点类型,小数位必须为0.

    (4)自动编号必须是主键字段(不用给主键id这个字段赋值,他会自动增加).

    创建一个带主键的表:

     CREATE TABLE user(

        -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

        -> username VARCHAR(20) NOT NULL

        -> );

    Database changed

    接着一次插入数据 便会有编号出现 但是如果删除了 编号会出现间断

    https://img1.sycdn.imooc.com//5aebf6480001b10605000282.jpg

    https://img1.sycdn.imooc.com//5aebf64900019b0d12800720.jpg


    查看全部
  • 修改MySql提示符

    查看全部
  • msql

    查看全部
  • create tb1( id. . . enum (1,2,3)defult 3 ) ;
    查看全部
  • 空值与非空:

    (1)null, 字段可以为空 ,如果不写,系统会自动默认为空。

    (2)not null ,字段不能为空


    查看全部
  • 查看数据库中的数据表列表:   SHOW TABLES FROM 表名;

    查看全部
  • 创建数据表

    用户名是字符型,字符数据量也不会大,可以定义为varchar(20);

    年龄存储类型,整型,tinyint unsigned(无符号位,即无负号);

    工资存储类型,浮点型,float(8,2) unsigned ;  float(8,2)表示含义  一个6位数小数点后面有2位

    查看全部
  • MySQL是关系型数据库,关系型的数据库其实就是一张二维型的表格,既然是二维表格,指的就是行和列之分,行称之为记录,列称之为字段;

    查看全部
    1. char<m>     :(定长类型):   比如定义char(5),如果我们只赋值abc,那么计算机在存时会自动在后面补两个空格 。   M的值:“ 0——255”;

    2. var char<m>:(变长类型):  比如定义char(5),如果我们只赋值abc,那么计算机就只会存abc。

      L+1个字节,其中L<=M且 M的值:“ 0——65535”;2^16

    3. tiny text   (小文本)   -L+1字节,       L<2^8      值在  255-0  之间      250以内使用

    4.   text   (标准文本)     -L+2字节,      L<2^16        值在  65535-0  之间    6w5以内使用          

    5. medium text    (中等文本)  :       -L+3字节,   L<2^24    值在  16777215-0  之间    1600w以内使用

    6. long text  (长的文本) :      -L+4字节,   L<2^32       值在  42949673e9-0  之间      1600w以上使用              

    7. enum <'value1','value2'...>    (枚举)      枚举值,提供几个选项,选择其中一个;值为--65535    2^16

    8. set     <'value1','value2'...>   :  (集合)   最多64个成员,可以任选里面其中几个,任意排列组合

    • 一、L+xxx字节 ;  其中xxx字节表示最大的存储范围; 1个字节为8个byte,8个byte最大的二进制值8个1转十进制就是255. 而2个字节就是16个1, 也可以说16个1就是2的16次方。依次推算;

    • 二、枚举值;  

    • 枚举值指的是 给枚举型赋几个值,如单选框的形式,只能在你给的值中选择一个          如:性别('男','女','保密')  只能选择一个。

    查看全部
    1. year (年)                 可存取两位或四位 1970 到 2069年----------------------- 1字节

    2. time stamp (时间戳)    1970-01-01零点 2037年之间的一个值 -------------------------- -4字节

    3. time (时间)              -8385959 到 8385959------------------------------------3字节

    4. date(日期)                1000年-1月1号 到 9999年12月31日 ---------------------3字节

    5. date time(日期时间)  1000年-1月1号 零点 9999年12月31日 23点59分59秒---8字节  

    6. ①在实际的开发项目中,因为日期时间类型 存在时差的问题,所以一般会使用时间戳的方式

    • ②MYsql中Time Stamp类型可以设定默认值,就像其他类型一样。自动update(更新) 和insat(插入) 到当前的时间    

    • ③还可以将时间存储成int型的当前的毫秒数,以后使用时还可以转换成任何的日期 时间的形式



    查看全部
  • 对MySQL数据类型最直接的理解就是:我们有一些数据是要存成数字的,而数字当中我们有一些需要存储成整数,

    而有另外一些可能需要存储成小数,还有的可能甚至存储成日期,以及字符型;


    无符号位代表永远都是正数;我们在数据优化的其中一个原则就是选择合理的数据类型进行存储,占用字节越少越好;

    带有小数的叫浮点型;Float[(M,D)];DOUBLE[(M,D)]M>=D  常用的是float类型,因为占用字节少;

    https://img1.sycdn.imooc.com//5aeb18210001509312800720.jpg

    https://img1.sycdn.imooc.com//5aeb1821000144ff12800720.jpg


    查看全部
  • 一.

       1.

        1.1  

           在windows电脑C盘里找到mysql数据库的启动文件mysql.exe的位置,并复制路径;


        1.2  

          桌面-->我的电脑-->右击属性-->高级--环境变量-->系统变量里找到path并双击path-->在变量值里的末尾加英文分号并粘贴刚才的路径然后在最后再加英文分号-->确定



        1.3  (每种数据库是一种环境,如MySQL环境)

        案例:连接数据库服务器(以mysql为例)

        mysql -h(服务器的IP) -u(登录的用户名) -p(登陆密码)


        服务器有很多种,如:web服务器(apache, tomcat,IIS等),数据库服务器,PHP服务器等等;(本地服务器连接方式是:http://localhost/ybq/11.php)     


             数据库服务器也有很多种,因为数据库种类不同,如Oracle,Informix,Sybase,SQL Server,PostgreSQL,MySQL,Access,FoxPro和Teradata等环境。以mysql数据库     服务器为例:每个服务器对应唯一的一个域名(ip地址),每个数据库环境有n个数据库,每个数据库有n个表,每个表里有n条记录,每条记录里有n个字段(列),字段里就是值了        (数据库服务器-->数据库-->表-->记录-->字段(列));


        1.4  课堂模拟连接mysql数据库

        windows开始程序,点击运行输入cmd进入dos窗口

        输入mysql -u(用户名) root(最高权限) -p(密码)回车两次即可进入mysql 

        操作mysql数据库,要以mysql>开头,以英文分号结尾;

        常见操作方式如下:

        \c 撤销当前操作

        \q 退出当前数据库环境


        2.

          2.1查看某数据库服务器有哪些数据库?

             show databases;

          2.2查看某数据库有哪些表?

             show tables;

      3. 对数据库的操作

       以下举得例子是:在web服务器创建了一个lamp131数据库,在库中创建了一个stu表,在表中加了一条记录,记录里加了id与class两个字段,并给字段赋了id=33,class=sss对   应的值。



      3.1创建数据库

       create database if not exists(存在) 数据库名;

       或者Create database 数据库名;


      3.2

      删除数据库

      Drop database if exists 数据库名;(之间的空格至少一个,且不区分大小写)

      对表结构的操作




      4.对表结构的操作

       4.1

       查看数据库的表

       show 数据库名;


       4.2

       进入数据库

       use 数据库;


      4.3

      创建一个表(并添加了字段)

      Create table if not exists表名(字段1 字段1的类型 [字段约束],字段2 字段2的类型 [字段约束],......);

      create table stu(id int,class varchar(20));

       4.4

       查看表结构

       Desc 表名

       Desc stu; 

       

       4.5

       查看建表语句

       Show create table stu;


       4.6

       建表时反引号的作用 ``

       Create table `table`(id int,a char(10), b tinyint);

       作用1 不允许用关键字做表名,加反引号后可以建立表名为关键字的表

       作用2 提高效率,加快建表速度


       4.5给stu这个表的id字段与class字段赋值

       insert into stu(id,class) values(33,'ssss');


      4.6插入字段值

      insert into 表名 values('aaaaaaa','bbbbbbb');


      4.7查看stu这个表的所有记录

      select * from stu;


      4.8

      删除stu这个表中的id=33这条记录

      delete from stu where id=33;

     5. mysql引擎

    MyISAM InnoDB Memory MERGE NDB

    常用的是myisam 和innodb,默认的引擎是innodb

    create table stu1(id int,class varchar(20))

    engine=myisam default charset=utf8;

    //设置字符集千万别加-















    忽略————————————————————————————————————————————————————————————————————————————

    对数据库的操作

    1 创建数据库

    create database if not exists(存在) 数据库名

    Create database lamp131;

    2 删除数据库

    Drop database if exists 数据库名

    对表结构的操作

    3 进入数据库

    use 数据库;

    1 创建一个表

    Create table if not exists表名(字段1 字段1的类型 [字段约束],字段2 字段2的类型 [字段约束],......);

    create table stu(id int,class varchar(20));

    2 查看表结构

       Desc 表名

       Desc stu;

    3 查看建表语句

     Show create table stu;

    4 建表时反引号的作用 ``

    Create table `table`(id int,a char(10), b tinyint);

    作用1 不允许用关键字做表名,加反引号后可以建立表名为关键字的表

    作用2 提高效率,加快建表速度

    5 mysql引擎

    MyISAM InnoDB Memory MERGE NDB

    常用的是myisam 和innodb,默认的引擎是innodb

    create table stu1(id int,class varchar(20))

    engine=myisam default charset=utf8;

    //设置字符集千万别加-

    忽略————————————————————————————————————————————————————————————————————————————


    字段的数据类型

    Create table bc(a tinyint unsigned,b tinyint(2),c int,d int(8));

    Insert into bc values(100,100,100000000,100000000);

    一  数值类型的

    Tinyint  int(2) 

    1()中的数字的含义?控制显示格式的

    如果你设置了zerofill,而且当前添加的字段值小于()里的位数,前面用零进行填充。


    2 如果添加的字段值超过了这个字段的最大值

     取最大值

    (当超过了,与设不设置zerofill没有任何关系了)



        zerofill 0填充

        create table dd(a tinyint(3), b tinyint(3) zerofill)

        如果b字段添加的数长度不够3,那显示的时候前面的位数会用0补(设置额了zerofill就用0补,没设置zerofill就没有0补)


    Float(6,2) double(6,2)

    Create table cd(a float(6,2),b double(6,2));

    ()中,前面的数字表示字段一共多少位,后面是小数点后多少位

    如果插入的数小数点后超过了2位,小数点后第三位要四舍五入

    mysql> insert into cd values(12000.34,12000.34);(插入值)

    Query OK, 1 row affected, 2 warnings (0.16 sec)


    mysql> select * from cd;

    +---------+---------+

    | a       | b       |

    +---------+---------+

    |   12.34 |   12.34 |

    | 9999.99 | 9999.99 |

    +---------+---------+

    2 rows in set (0.00 sec)


    如果插入的数小数点后超过了2位,小数点后第三位要四舍五入


    二  字符串类型的

    char(10)和 varchar(10)区别?   int(10) 和 int 的区别  float(6,2)括号里内容的含义

    char类型的是定长,即你一旦设置了固定长度,就算你插入的值不到这个长度,在硬盘上也占用这个长度,提高了效率,但浪费了空间资源

    varchar是不定长的,如果你写入的内容不够指定的长度,剩余的空间会被下一个写入的字段值占用,节约了硬盘空间,但效率低

    char与varchar,不管谁,如果超过定义的长度,截取掉,只取定长数据

    -- 创建表

    create table de(a char(10),b varchar(10));

    -- 插入数据

    insert into de values('aaaaaaa','bbbbbbb');


      枚举类型和集合

     create table fg(a enum('nan','nv','yao'),b set('zq','lq','qq','ymq'));

     insert into fg values('nan','zq,lq');

      添加数据时,数据值必须在枚举的值中,或者在集合已定义的值中,如果没有,不会添加

     insert into fg values('guai','zq,ppq');

      mysql> insert into fg values('guai','zq,ppq');

    Query OK, 1 row affected, 2 warnings (0.01 sec)


    mysql> select * from fg;

    +------+-------+

    | a    | b     |

    +------+-------+

    | nan  | zq,lq |

    |      | zq    |

    +------+-------+

    2 rows in set (0.00 sec)


     日期时间类型

     create table jj(a date,b time,c datetime,d timestamp(时间戳),e year);


     insert into jj(a,b,c,e) values('2015-12-25','17:03:20','2015-12-25 17:03:20','2015');

                       (字段与值一定对应)



      字段约束

     

      unsigned无符号(正负号)  tinyint -128----127     unsigned  0-255(因为tinyint的取值范围是两段,且不连续:-128——127和0——255)

      create table cc(a tinyint, b tinyint unsigned) a的范围-128到127  b的范围0-255



        zerofill 0填充

         create table dd(a tinyint(3), b tinyint(3) zerofill)

          如果b字段添加的数长度不够3,那显示的时候前面的位数会用0补



        default(默认值的作用)

        create table w(id int,a enum('nan','nv','yao') default 'nan');

                                   (字段类型:数组)      (为a字段起作用)

        insert into w(id) values(1);

        mysql> select * from w;

    +------+------+

    | id   | a    |

    +------+------+

    |    1 | nan  |

    +------+------+

    1 row in set (0.01 sec)


         AUTO_INCREMENT(自动增量) 

         create table z(id int primary key auto_increment,name varchar(40));

                               (id设置为主键了)

         insert into z(name) values('zhangsan'),('lisi'),('wangwu');


    mysql> select * from z;(*号是全部的意思)

    +----+----------+

    | id | name     |

    +----+----------+

    |  1 | zhangsan |

    |  2 | lisi     |

    |  3 | wangwu   |

    +----+----------+

    3 rows in set (0.00 sec)


         null not null(不为空)

    create table zz(id int not null,name varchar(40));

    insert into zz(id,name) values(null,'zhangsan'),(null,'lisi'),(null,'wangwu');


    查看全部
    0 采集 收起 来源:内容回顾

    2018-05-03

举报

0/150
提交
取消
课程须知
要想学习本课程,你只需要知道数据库是个什么东东就足够了,是不是很easy?!
老师告诉你能学到什么?
1、MySQL安装与配置 2、数据类型 3、流程控制与运算符 4、DDL、DCL、DQL、DML 5、常用函数 6、表类型(存储引擎) 7、图形化工具
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!