BUG更新的博客

花样BUG

初学数据库mysql

SQl语句不区分大小写

SQL语句可单行或多行书写,以  ;结尾

SQL语句顺序:from—>where--->select--->其他

一个数据库对应一个文件夹,可在硬盘中进行相应的操作

登陆:

        mysql -u用户名 -p密码

退出:quit

mysql -h    服务器

mysql -P    端口号    -->  小写p是密码,大写P是端口号

注释:

    单行注释:--

    多行注释:/*.......*/




命令:

    show databases:显示当前数据库

    drop database 数据库名:删除数据库

    create database 数据库名:创建数据库

    select now():打印当前时间

    create database if not exists 数据库名:如果当前数据库不存在,则创建,如果存在,不进行操作

    show create database 数据库名:查看数据库信息

    character set 编码方式:在创建数据库时,后面加上此命令可改变编码方式

    alter database 数据库名 character set 编码方式:用于创建完数据库之后重新修改编码方式

    use 数据库名:进入当前数据库    --> 进入之后不能退出,可以通过use命令进入其他数据库

    select database():查看当前属于哪个数据库



数据类型:   

    数字类型:

        浮点型:

            float(4,2)      4是全长,  2是小数点后位数

            double(4,2)

        整形:

            TINYINT:   1字节

            SMALLINT:2字节

            MEDUMINT:3字节

            INT:4字节

            BIGINT:8字节

    字符串数据类型:

        utf-8中一个汉字3个字节

            char(3):只能存3个字节的字符串

            varchar(20):最多存20个字节的字符串

            blob:存二进制

            text:文本

    时间数据类型:

            DATE:YYYY-MM-DD类型

            TIME:HH:MM:SS

            YEAR: YYYY

            DATETIME: YYYY-MM-DD HH:MM:SS

            TIMESTAMP:   混合日期和时间值得时间戳




表操作:

    CREATE TABLE 表名(字段名 数据类型[约束条件],下一个):创建表

            ↑↑↑         emm        id       TINYINT primary key    <--主键

    约束条件:

            PRIMARY KEY:主键

            AUTO_INCREMENT:自增

            DEFAULT:默认值

            NOT NULL:不为空

            .....

    create table 表A (select * from 表B):在创建表A时,将表B的全部记录添加进去

    show table;    查看当前数据库内所有表

    desc 表名:   查看表信息

    show create table 表名  :显示创建表时的信息

    alter table 表名 add 字段名 数据类型:在表中新建字段

    alter table 表名 add 字段名 数据类型,add 字段名 数据类型:     可同时添加多个字段

    alter table 表名 drop 字段名:    删除表中字段

    alter table 表名 drop 字段名,drop 字段名:    可同时删除多个字段

    alter table 表名 modify 字段名 数据类型[约束条件][first    或    after 字段名]:   修改表中字段的数据类型位置等等

    alter table 表名 change 原字段名 新字段名 数据类型 [约束条件][位置]:  修改表中的字段名称,数据类型,位置等等

    rename table 原表名 to 新表名:  修改表名

    drop table 表名:删除表


添加表记录:

    insert into 表名 (字段名,字段名)  values (值,值):  为字段增加记录,没有为空约束的可以不填

    insert into 表名(字段名,字段名) vlues (值,值),(值,值):可添加多条记录

    insert into 表名 values (值,值):这种方式添加记录,必须逐条添加所有字段

    insert into 表名 set 字段名=值,字段名=值   :为字段添加记录

修改表记录:

    update 表名 set 字段名=值  :修改一整列的数据,单独修改需用筛选

删除表记录:

    DELETE FROM 表名: 删除表中所有的记录,单独删除需用筛选

    truncate table 表名:删除整个表的记录

查询表记录:

    select 字段名 from 表名  :查询当前字段所有记录,单独查询需用筛选

    select 字段名 ,字段名  from 表名:查询多个字段

    select distinct 字段名 from 表名:去处重复项

    select 字段名 as 别名 from 表名:显示结果时,用别名代替字段名 ,只显示一次,数据库内字段名不改变,as可以省略

    筛选:    

        where 字段名 判断符 值:     where不能用别名

            <  >  =  <=   >=  !=

            between a and b :值在a与b中间

            in(a,b,c)       :值是a或b或c

            like "李%"    %匹配任意的任意个字符

                “李_”    _下划线匹配一个字符

            逻辑运算符:

                        and or not

排序:

    order by 字段名 排序[默认正序,desc是倒序]:  可以用别名

分组:

    group by 字段名/或字段顺序[从左到右,从1开始]:每一组只显示第一条记录

    having:过滤筛选,用于分组后的数据,跟where功能相似,having可以替换where,where不能替换having

    聚合函数:用于分组的数据

        sum(字段名):用于分组是求总和,放在select中

        count(字段名):计数

        avg(字段名):求平均值

        avg(ifnull(字段名,0)):如果字段为空,用0代替计算

        max(字段名):求最大值

        min(字段名):求最小值


limit限制:

    select * from 表名 limit 限制数(n)  :显示前n条记录

    select * from 表名 limit n,y     :从第n条记录开始,向后显示y条记录


正则查询:     REGEXP

        where 字段名 regexp '正则表达式'


外键:被绑定的表是主表,绑定外键的表是从表

    创建表时,创建外键:

                foreign key(字段名)references 表名(字段名)

                                     ↑绑定                       ↑被绑定

                create 表名() ENGINE=INNODB: 外键约束

    给表插入一个外键:

                alter table 表名 add constraint 外键名称 foreign key (字段名) references 表名(字段名)

    删除外键:

                alter table 表名 drop foreign 外键名称

    级联删除:

                foreign key(字段名)references 表名(字段名) on delete cascade

                        ↑↑   创建外建时加上这句,父表内记录删除时,会自动删除子表的绑定记录

                foreign key (字段名) references 表迷(字段名) on delete set null

                        ↑↑   创建外键时加上这句,父表内记录删除时,会自动将字表的绑定记录改为null


多表查询:

    连接查询:   

        内连接:inner join

        外连接:left join  , right join

        全连接:full join 

   内连接:显示两个表中都能匹配到的记录

            select * from tableA,tableB where tableA.id=tableB.aid;

    外连接:

            left join:以左表为主,在左表中有,但右表中没有匹配到的也会显示,对应值为null

            right join:以右表为主

    全连接:

            full join: mysql中不支持,但可以用



多表查询筛选

                select * from tableB left join tableA on    :用on筛选

多表查询之子查询:

        in关键字:

                select * from 表A where 字段1 in (select 字段2 from 表B):查询字段1在表B中的字段2中的所有记录



EXISTS关键字:返回TRUE或者是FALSE

            select * from 表A  where EXISTS (select 字段2 from 表B where 条件):

                      ↑↑如果括号内的查询有数据,则EXISTS返回TRUE,执行 select * from 表A ,否则不执行

索引:

    普通索引

    唯一索引

    全文索引

    多列索引

    .......

        

        create table 表名(字段A 类型,字段B 类型,index|key [索引名称] 字段A)

                ↑↑ index或key命令创建普通索引,将字段A作为普通索引

            在index前面加上[    unique  |        fulltext        |     spatial ]  创建各种索引

                                        ↑唯一索引        全文索引            空间索引

            多列索引:

                    index [索引名称] (字段A,字段B):多个字段创建索引

SQ1L语句顺序:from—>where--->select--->其他
阅读更多
个人分类: mysql
想对作者说点什么? 我来说一句

SSH 初学源代码

2013年04月23日 16.54MB 下载

酒店管理系统

2014年12月17日 23.64MB 下载

数据库设计

2018年04月12日 5KB 下载

linux下数据库MYSQL语句

2018年04月04日 65KB 下载

Mysql数据库轻轻松松入门

2009年12月02日 13.94MB 下载

数据库mysql

2017年12月26日 75KB 下载

数据库MYSQL

2014年03月20日 2KB 下载

没有更多推荐了,返回首页

不良信息举报

初学数据库mysql

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭