MySQL基础知识点


一、数据类型

1、整型(xxxint)

  1. tinyint(m)                   1个字节表示(-128~127)
  2. smallint(m)                2个字节表示(-32768~32767)
  3. mediumint(m)           3个字节表示(-8388608~8388607)
  4. int(m)                         4个字节表示(-2147483648~2147483647)
  5. bigint(m)                    8个字节表示(±9.22*10的18次方)

m表示最大显示宽度

2、浮点型(float和double)

  1. float(m,d)                          单精度浮点型,8位精度(4字节),m是十进制数字的总个数,d是小数点后面的数字个数
  2. double(m,d)                      双精度浮点型,16位精度(8字节)

参数m只影响显示效果,不影响精度,d却不同,会影响到精度。

3、定点数(decimal)

decimal(m,d)定点类型。           浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。参数m是定点类型数字的最大个数(精度),范围为0~65,d为小数点右侧数字的个数,范围为0~30,但不得超过m。对定点数的计算能精确到65位数字。

4、字符串(char,varchar,xxxtext)

  1. char(n)                              固定长度的字符串,最多255个字符
  2. varchar(n)                         固定长度的字符串,最多65535个字符
  3. tinytext                             可变长度字符串,最多255个字符
  4. text                                   可变长度字符串,最多65535个字符
  5. mediumtext                      可变长度字符串,最多2的24次方-1个字符
  6. longtext                            可变长度字符串,最多2的32次方-1个字符

n为存入位数

5、二进制数据(xxxBlob)

xxxBlob和xxxtext是对应的,不过存储方式不同,xxxtext是以文本方式存储的,如果存储英文的话区分大小写,而xxxBlob是以二进制方式存储的不区分大小写。xxxBlob存储的数据只能整体读出。xxxtext可以指定字符集,xxxBlob不用指定字符集。

6、日期时间类型

  1. date                                  日期'2014-10-14'
  2. time                                  时间'14:47:56'
  3. datetime                           日期时间'2014-10-14 14:47:56'
  4. timestamp                        不固定

timestamp比较特殊,如果定义一个字段的类型为timestamp,这个字段的时间会在其他字段修改的时候自动刷新。所以这个数据类型的字段可以存放这条记录最后被修改的时间,而不是真正来存放时间。

7、数据类型的属性

  1. NULL                                数据列可包含NULL值
  2. NOT NULL                        数据列不允许包含NULL值
  3. DEFAULT xxx                    默认值,如果插入记录的时候没有指定值,将取这个默认值
  4. PRIMARY KEY                   主键
  5. AUTO_INCREMENT          递增,如果插入记录的时候没有指定值,则在上一条记录的值上加1,仅适用于整型
  6. UNSIGNED                       无符号
  7. CHARACTER SET name    指定一个字符集

二、基本SQL语句

SQL全称:结构化查询语言(Structured Query Language)

1、MySQL命令行客户端命令

---登录MySQL数据库

    mysql -u root-p

    password

---查看数据库

    show databases

---使用数据库

    use 数据库名

---查看当前数据库表

2、数据定义语言(DDL)

---创建数据库

     create database 数据库名;

---创建表

     create table 表名(字段1,字段2,字段3,…);

     例子:

     create table teacher(

     sid int(11) primary key auto_increment,

     name varchar(20),

     gender char(1),

     age int(2),

     birth date);

---查看表结构

     desc 表名;

---删除表

    drop table 表名;

    //该语句会删除该表所有的记录及表结构

---修改表的结构

    alter table 表名add columnname varchar(10); ---添加表列

    alter table 表名 renamename; ---修改表名

    alter table 表名 drop columnname; ---删除表列

    alter table 表名 modifyaddress char(10); ---修改表列类型(修改数据类型)

    alter table 表名 change address address1 char(40); ---修改表列类型(修改字段名和数据类型)

    alter table 表名 change column address address1 varchar(30); ---修改表列名(与上个一样,多了column)

 

========================================

主键,用来唯一代表一条记录的字段(主键值必须是唯一)

 

3、数据操作语言(DML)

---添加数据

    insert into 表名(字段1,字段2,字段3,…)values(value1,value2,value3,…);

 (表名后可以不加括号及字段,但是在values中要将所有的value按对应的顺序输入)

---修改数据

    update 表名set 字段名='值',字段名='值',字段名='值'where 字段名='值';

---删除数据

    delete from 表名;

---删除ID为1的记录

    delete from 表名where id=1;

 

4、数据查询语言(DRL)

---查询指定字段、位置的信息

    select 字段1,字段2,字段3,…from 表名where 字段=值;  (其他判断符也可)

    select 字段1,字段2,字段3,…from 表名where 字段=值 and 字段=值;  (其他判断符也可)

    select 字段1,字段2,字段3,…from 表名where 字段=值 or 字段=值; (其他判断符也可)

---模糊查询

    select 字段1,字段2,字段3,… from 表名 where 字段 like 值;

    例子:

    select * from teacherwhere name like '%s';

    //查询字段name里以s结尾的数据

    select *from teacher where name like 's%';

    //查询字段name里以s开头的数据

   select * from teacherwhere name like '%s%';

    //查询字段name里有s出现的数据

---查询并排序

   select 字段1,字段2,字段3,…from 表名where 字段=值 order by 字段 asc;   //升序 可以不写asc,默认为升序

   select 字段1,字段2,字段3,…from 表名 where 字段=值 order by 字段desc;   //降序

---多条件排序

   select 字段1,字段2,字段3,…from 表名where 字段=值 order by 字段 asc,字段 desc;

---分组查询

   select 字段 函数 from 表名group by 字段;

   例子:

   select gender,count(gender)from teacher group by gender;

   //按gender分组并计数

   select gender,count(gender)from teacher group by gender having gender='m';

  //按gender分组并统计值为m的个数,having在实际应用中应用不太多,例如本例,可以用select gender,count(gender)from teacher where gender='m';代替。

---查询值是否为null的信息

    select * from 表名where 字段is (not) null;

========================================

在没有表被引用的情况下,只允许指定DUAL作为一个假的表名

    select count(字段)as 别名 from 表名 as 别名;  //as可省略

    select count(字段) as 别名 from 表名 as 别名;  //as可省略

    select 别名.字段 别名.字段 from 表名 as 别名;  //as可省略

    select 字段1,字段2,字段3,…from teacherlimit f,n;

    //查询前n个信息 f表示起始位置 n表示查询信息的个数

5、事务控制语言(TCL)

事务是访问并可能更新数据库中各种数据项的一个程序执行单元。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。事务应该具有4个属性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持续性(durability)。事务就是对数据库的多步操作,要么一起成功,要么一起失败。

---设置默认事务提交方式

     set autocommit=false//设置事务提交方式为"手动提交"

     set autocommit=true //设置事务提交方式为"自动提交"

=======================================

     commit;                     //手动提交事务

     rollback;                     //回滚事务

     savepointpoint2;      //保存还原点

     rollback to point2;    //回滚到point2还原点

学长博客原文http://blog.csdn.net/cc65431362/article/details/40076175

很久以前学过,后来很少敲MySQL命令行也就忘了,不过还是要记着这些基础操作。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值