MySQL基础--2

作者: Czw_hacker | 来源:发表于2016-10-23 21:54 被阅读51次

    约束

    • 非null约束

      stuname varchar(20) not null

    • 默认约束

      stuaddress varchar(100) default '中国'

    • 唯一约束

      stuname varchar(20) not null unique

    更改表

    • 添加一列

      alter table t_student(表名) add tel(列名) char(20);

    • 删除一列

      alter table t_student(表名) drop column tel(列名);

    • 添加唯一约束

      alter table t_student(表名) add constraint uk_username unique(约束名)(usercode(约束对象名));

    • 添加主键约束

      alter table t_user(表名) add constraint pk_t_user_id(约束名) primary key t_user(id)(约束对象名);

    • 添加默认约束

      alter table t_user(表名) alter password set default '123456';(约束内容)

    • 添加非null约束

      alter table t_teacher(表名) modify column uname varchar(20)(约束对象名) not null

    • 重命名表

      rename table t_student(旧表名) to t_stu;(新表名)

    • 改变某一列的值update

      update t_student(表名)
      set
      stuname = 'Alex',age = '26'(改变值)
      [where id = 1];(改变值的条件)

    insert

    一次性插入多条语句

    insert into t_student(stuname,stuage,stuaddress)
    values
    ('tom','23','北京'),
    ('jerry','25','伤害'),
    ('hanks','21','杭州')
    
    • insert语句中列的数量和值的数量必须相同
    • 每个值的数据类型、精度和小数位数必须和列的要求相匹配
    • 列的值要符合列的约束
    • 如果列有默认值,可以使用关键字default来插入默认值

    运算符

    逻辑运算符

    • = 等于
    • <>,!= 不等于
    • < 小于
    • >大于
    • <=小于等于
    • >=大于等于
    • between在指定的两值之间

    关系运算符

    • and
    • or
    • not

    删除

    delete

    delete from t_student(表名) where id =1;(删除的条件)
    如果不加条件会删除所有数据

    truncate

    truncate table t_student;

    TRUNCATE TABLE用于删除表中的所有记录,但该语句不能包含WHERE语句,该操作运行速度比
    DELETE语句快(慎用)。

    表设计的三大范式

    • 确保每列的原子性
    • 在第一范式的基础上,确保每列都和主键相关
    • 在第二范式的基础上,确保每列都和主键直接相关,而不是间接相关。

    外键

    • 有外键约束的前提下
    • 子表中外键列中添加的数据必须在主表的主键中存在
    • 外键列的数据类型及长度必须和主表的主键的数据类型及长度相同
    • 删除主表数据时,如果有子表引用,则删除失败
      创建外检

    alter table t_user(表名) add schoolid int(外键名及类型);

    添加外键约束

    alter table t_user(表名) add constraint fk_student_cus(约束名) foreign key(schoolid)(外键名)
    fererecens t_school(id);(对应的表的主键名)

    删除外键

    alter table t_user drop foreidn ker fk_stident_cus(外键名)

    文本处理函数

    • left()返回左边指定长度的字符

    SELECT prod_name,LEFT(prod_name,2) FROM products;

    • right()返回右边指定长度的字符

    SELECT prod_name,RIGHT(prod_name,5) FROM products;

    • length()返回字符串的长度

    SELECT prod_name,LENGTH(prod_name) FROM products;

    • lower()将字符串转换为小写

    SELECT prod_name,LOWER(prod_name) FROM products;

    • upper()将字符串转换为大写

    SELECT prod_name,UPPER(prod_name) FROM products;

    • ltrim()去掉字符串左边的空格

    SELECT prod_name,LTRIM(prod_name) FROM products;

    • rtrim()去掉字符串右边的空格

    SELECT prod_name,RTRIM(prod_name) FROM products;

    • trim()去掉左右两边的空格

    SELECT prod_name,TRIM(prod_name) FROM products;

    • 字符串连接

    SELECT CONCAT('I love ',cust_name) AS 'Message' FROM customers;

    日期和时间函数

    函数 用途 函数 用途
    curDate() 返回当前的日期 cuiTime() 返回当前时间
    now() 返回当前的时间和日期 date() 返回日期时间的日期部分
    time() 返回日期时间的时间部分 day() 返回日期时间的天数部分
    dayofweek() 返回一个日期对应星期数 hour() 返回时间的小时部分
    minute() 返回时间的分钟部分 month() 返回日期的月份部分
    second() 返回时间的秒部分 year() 返回日期的年份部分
    datediff() 计算两个日期之差 addDate 添加一个日期(天数)

    聚合函数

    聚合函数常用于统计数据使用

    聚合函数统计时忽略值为null的记录

    • 查询商品价格最高的产品

    SELECT MAX(prod_price) FROM products;

    • 查询商品价格最低的产品

    SELECT MIN(prod_price) FROM products;

    • 查询商品价格总合

    SELECT SUM(prod_price) FROM products;

    • 查询商品平均价格

    SELECT AVG(prod_price) FROM products;

    • 查询客户数量

    SELECT COUNT(*) FROM customers;

    SELECT COUNT(cust_email) FROM customers;
    当count函数里边填具体参数(非*)时,参数列表中含有null值的将不参数总和计算

    相关文章

      网友评论

        本文标题:MySQL基础--2

        本文链接:https://www.haomeiwen.com/subject/blvkuttx.html