Mysql复习(1)

MYSQL数据库
DB:database(数据库),按照一定结构存储数据的仓库,其真实形态为电子文件
DBMS:数据库管理系统(database management system)
DBS:数据库系统(database system)

层次型:除了根节点外,任何一个节点有且只有一个父节点
网状型:任何一个节点可有两个或者多个父节点
关系型:二维表格,列称为字段,行称为记录(数据内容)
    MYSQL,SQL SERVER,DB2,ORACLE
mongoDB,redis(非关系型)

MYSQL:
1.登录
shell登录 mysql -u用户名 -p密码 -h服务器名称 -p端口号(默认3306)
2.退出
mysql> exit;
quit;
\q;
3.常用的命令
select version()//打印版本号
select now()//打印当前日期及时间
select user()//打印当前用户
select database()//打印当前数据库
4.常用数据库管理
a.创建数据库:
create database [if no exists] 数据库名称 [[default] character set 编码方式]
b.查看当前服务器下的数据库列表
show databases [like ‘表达式’]
c.查看数据库的创建
show create database 数据库名称;
注意数据库的字符集编码:utf8,utf8_general_ci
d.修改数据库
alter database 数据名 default character set 编码方式(utf8)
e.删除数据库
drop database [if exists] 数据库名
f.使用数据库
use 数据库名;
5.常用的数据表的管理
a.创建数据表
create table 表名称(列定义,……)
列定义:列名称和数据类型。//数据表的字段
注意:数据库和表名不能重名;名称可以由任意字母、阿拉伯数字、下划线(_)和$组成,可以使用上述的任意字符开头,
但不能使用单独的数字;名称最大长度可为64位字符;不能使用MYSQL关键字作为名称;
在windows系统中,名称对大小写不敏感(不区分大小写),在linux中,严格区分大小写,一般采用小写来定义

                            数据类型:
         1.整型:
                                                                        字节数                 无符号存储范围                                 有符号存储范围
            tinyint:占1字节;无符号位的存储范围为0-255;有符号位的存储范围为-128~127
            smallint:占2字节;          0~66635;          -32768~32767
            mediumint:占3字节;         0~16777215;                 -8388608~8388607
            int:      占4字节;         0~4294967295;           -2147483648~2147483647
            bigint:     占8字节;
         2.浮点型
            float(M[,D]):4字节,单精度浮点,-3.4E38~3.4E38,可以保留到小数点后的7位
            double(M[,D]):8字节,双精度浮点,-1.79E308~1.79E308,可以保留到小数点后15位
                M:小数点前后数字的总位数;D:小数点后的数字位数
          3.字符型
            char(N):定长的字符;N为0~255
            varchar(N):变长的字符:N为0~65535
            tinytext:最多存储255个字符
            text:最多存储65535个字符
            mediumtext:
            longtext:
            enum(值,值,值):枚举值,最多为65535个选项
          4.日期时间
            date():存储范围为1000-01-01~9999-12-31
       create table user(     
            user_name varchar(20),
            password int(8),
            sex  smallint(2)
       );
       CREATE TABLE `user_1`( 
            `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
            `user_name` VARCHAR(20) NOT NULL, 
            `password` INT(8) DEFAULT 123456, 
            PRIMARY KEY (`id`) 
        )ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci;
        CREATE TABLE `user_1` (
          `id` int(10) unsigned NOT NULL auto_increment,
          `user_name` varchar(20) NOT NULL,
          `password` int(8) default '123456',
          PRIMARY KEY  (`id`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
        CREATE TABLE `user_2` (
          `id` int(10)  NOT NULL primary key auto_increment,
          `user_name` varchar(20) NOT NULL,
          `password` int(8) default '123456'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

                扩展:
                    列名      数据类型    [not null | null] [[primary] key] [auto_increment] [unique [key]]   [default 默认值]
         not null:禁止为空
         null:可以为空
         primary key:主键约束,每张表中只能存在一个主键约束;保证数据记录的唯一性;自动禁止为空;自动在该字段上创建索引
         auto_increment:自动编号,具有该属性的字段,必须是数值型,必须在该字段上创建了主键
         unique key:值唯一约束,保证记录的唯一性,每张表可以存在多个唯一约束
         default:默认值,如果在插入记录时,没有明确为该字段赋值,那么其值为默认值

  b.查看当前数据库中的数据表
    show tables;
  c.查看数据表的结构
    show columns from 数据表名;
  d.修改数据表
    alter 数据表名  ......;
    ALTER TABLE `user_1` CHANGE `password` `password` VARCHAR(32) NULL;
    ALTER TABLE `user_1` CHANGE `user_name` `user_name` VARCHAR(10) CHARSET utf8 COLLATE utf8_general_ci DEFAULT '' NOT NULL, CHANGE `password` `password` INT(8) NULL;
    ALTER TABLE `user_1` ADD COLUMN `sex` SMALLINT(2) DEFAULT 0 NULL AFTER `password`; 
   e.删除数据表
    drop table 数据表名;//删除表
    truncate table 数据表名; //清空表

    四大语句:(CURD)--create、update、retrieve、delete--增删改查
    插入:
    insert [into] 数据表 [(字段名,字段名.....)] values(值1,值2....);
                    注意:如果省略字段列表,那么必须为所有字段依次赋值;字段值的数量和数据类型以及顺序必须与字段完全相同;必须为设置为非空且没有默认值的字段赋值

    更新:
    update 数据表名 set 字段名=值,字段名=值....[where条件];//如果省略where条件,将更新全部记录
    删除:
    delete from 数据表名 [where条件];//如果省略where条件,将删除全部记录
    查询:
    select 字段名称 [as 别名],字段名 [as 别名]...... from 数据表名 [where条件];
    1.查询所有字段,可以用*表示

WHERE条件:
    [where 条件] [group by 字段  having 条件] [order by 字段名称[ASC|DESC][,...]] [limit [start,] row_count]
    group by:根据字段进行分组
    having:保证字段名称出现在分组字段内或者出现在聚合函数中
    order by:指定字段进行排序,ASC(升序,默认)DESC(降序)
    limit:限制返回的记录数目;start指从第几条开始返回(记录从0开始编号);row_count返回多少条记录
            条件:
    1.运算符:
        算术运算符:+、-、*、、、%
        字符运算符:[not] like '_%';(_通配一个字符,%通配0个或者多个字符)
        lower 、upper、concat
        比较运算符:
        =
       [not] between ... and ...
       [not] in(...,...,...)
       is [not] null
       逻辑运算符:
       not、and、or


    聚合函数:
   sum()求和
   count()计数
   avg()求平均值
   max()最大值
   min()最小值

    start,num   page
        0,2     1
        2,2     2
        4,2     3
        6,2     4
        8,2     5

        (page-1)*num
        limit (page-1)*num,num
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值