MySql的学习

创建数据库

create database [if not exists] 数据库名

- 如果使用if not exists关键字,则当指定的数据库名存在时,不创建数据库。如果不使用if not exists 关键字,当创建的数据库名存在时,将产生错误。

显示创建数据库

show create database 数据库名

删除数据库

drop database

使用数据库

use database

数据库当中最基本的单元是表:table

数据库当中是以表格的形式表示数据的。

任何一张表都有行和列:

   行(row):被称为数据、记录。

   列(column):被称为字段

查看某个数据库下的表

 Show table

SQL语句分类

 DQL:数据查询语言(凡是带有select 关键字的都是查询语言)

 DML:数据操作语言(凡是对表当中的数据进行增删改的都是DML)

        Insert  增

        Delete 删

        Update改

主要是操作表中的数据data

DDL:数据定义语言

      凡是带有create drop alter的都是DDL

      DDL主要操作的是表的结构。不是表中的数据。

      Create:新建,等同于增

      Drop:删除

      Alter:修改

      这个增删改和DML不同,这个主要是对表中的结构进行操作。

TCL:事务控制语言

      包括:事务提交:commit、事务回滚:rollback

DCL:数据控制语言

      授权grant 、撤销权限revoke。。。。。

查看表中的数据:select *from 表名

不看表中的数据,只看表的结构,有一个命令:

Desc 表名

查询一个字段

  Select 字段名 from 表名;

  其中要注意:

   Select 和 from 都是关键字。

字段名和表名都是标识符。

强调:

对于SQL语句来说,是通用的。

所有的SQL语句以“;”结尾。

另外SQL语句不区分大小写,都行。

创建数据库

create datebase [if not exists] 数据库名

如果使用if not exists 关键字,则当指定的数据库名存在时,不创建数据库。如果不使用if not exists 关键字,当创建的数据库名存在时,将产生错误。

show create database XXX 显示创建的数据库。

drop database 删除数据库

一、E-R模型由实体、属性和关系三个基本要素构成

二、主键有以下两个特征:1、表的主键可以由一个字段构成,也可以由多个字段构成(这种情况称为复合主键)。2、数据库表中主键由多个字段构成时,每个字段的值不能取NULL值。

约束类型

约束

说明

NOT NULL

非空约束,指定某列的所有行数据不能包含空值

UNIQUE

唯一性约束,指定列或者列的组合的所有行数据必须唯一

PRIMARY KEY

主键约束,表的每一行的唯一性标识,指定列或者列的组合的所有行数据必须唯一

FOREIGN KEY

外键约束,在列及引用列上建立的一种强制依赖关系

CHECK

检查性约束,在列上指定一个必须满足的条件

要定义表的结构,需要设计表由哪些列组成,指定列的名称和数据类型。mysql的数据类型包括数值类型、日期和时间类型和字符串类型等

1 创建表

 create table 表名(

字段名1 数据类型 [约束条件],

。。。

[其他约束条件],

[其他约束条件]

)其他选项(例如存储引擎、字符集等选项)

例如

create table student (        --学生表

           xh char(4),--学号

           xm varchar(10),--姓名

           sex char(2),--性别

           birthday date,--出生日期

           sal double(7,2), --奖学金

           studentcid int(2) --学生班级号

)

2 修改表名

ALTER  TABLE 旧表名 RENAME TO 新表名

3 往表插入数据(增删改)

插入数据


3.1 #列名与值一一对应即可,顺序可以与表中的顺序不一致

insert into 表名(列名,列名……)

values(列名值,列名值……);

3.2值与列一一对应(默认插入所以数据)

insert into 表名

values(列名值,列名值……);

3.3 批量插入

insert into 表名

values(列名值,列名值……),

values(列名值,列名值……),

values(列名值,列名值……),……

删除表数据

  

  • PRIMARY KEY,指定字段为主键。
  • AUTO_INCREMENT,指定字段为自动增加字段。
  • INDEX为字段创建索引。
  • NOT NULL字段值不允许为空。
  • NULL,字段值可以为空。
  • COMMENT设置字段的注释信息。
  • DEFAULT设置字段的默认值。

复制表

修改表

修改约束条件

MySQL函数概述

   常用函数分类

    • 数学函数
    • 字符串函数
    • 日期和时间函数
    • 流程控制函数
    • 其他函数

数学函数

ABS(x):返回x的绝对值;

SQRT(x):返回非负数x的平方根;

PI():返回圆周率;

MOD(x,y)或%:返回x被y除的余数;

CEIL(x)、CEILING(x):返回大于或者等于x的最小整数值;

FLOOR(x):返回小于或者等于x的最大整数值;

ROUND(x,y):返回保留小数点后面y位,四舍五入的整数;

TRUNCATE(x,y):返回被舍弃的小数点后y位的数字x;

RAND():每次产生不同的随机数;

SIGN(x):返回参数的符号;

POW(x,y)和POWER(x,y): 返回x的y次乘方的结果值;

EXP(x):返回以e为底的x乘方后的值;

LOG(x):返回x的自然对数,x相对于基数e的对数;

LOG10(x):返回x的基数为10的对数;

RADIANS(x):将参数x由角度转化为弧度;

DEGREES(x):将参数x由弧度转化为度。

SIN(x):返回x正弦,其中x为弧度值;

ASIN(x)返回x的反正弦,即正弦为x的值;

COS(x):返回x的余弦;

ACOS(x):返回x反余弦

TAN(x):返回x的正切;

ATAN(x)返回x的反正切

字符串函数

CHAR_LENGTH(str):返回字符串str的所包含字符个数;

LENGTH(str):返回字符串str的长度;

CONCAT(s1,s2,...): 字符串连接;

CONCAT_WS(x,s1,s2,…):字符串连接, x是其它参数的分隔符;

INSERT(s1,x,len,s2) :返回字符串s1,s1中插入字符串s2

LOWER (str)|LCASE (str):将字符串全部转换成小写字母;

UPPER(str)|UCASE(str):将字符串全部转换成大写字母;

LEFT(s,n):返回最左边指定长度的字符;

RIGHT(s,n):返回最右边指定长度的字符;

LPAD(s1,len,s2)| RPAD(s1,len,s2) :填充字符串函数;

TRIM(s1 FROM s)|LTRIM(s)|RTRIM(s):删除空格函数;

REPEAT(s,n):重复生成字符串函数;

SPACE(n):返回一个由n个空格组成的字符串;

REPLACE(s,s1,s2):字符串替换函数;

STRCMP(s1,s2):比较字符串大小函数;

SUBSTRING(s,n,len):获取子串函数;

LOCATE(str1,str)|POSITION(str1 IN str)|INSTR(str, str1):匹配子串开始位置函数;

REVERSE(s):将字符串s反转;

ELT(N,字符串1,字符串2,字符串3,…):返回指定位置函数;

日期和时间函数

CURDATE()和CURRENT_DATE() :获取当前日期函数;

NOW():返回服务器的当前日期和时间;

CURTIME():返回当前时间,只包含时分秒;

UTC_DATE():返回世界标准时间日期函数;

UTC_TIME():返回世界标准时间函数;

TIMEDIFF(expr1, expr2):返回两个日期相减相差的时间数;

DATEDIFF(expr1, expr2):返回两个日期相减相差的天数

DATE_ADD(date,INTERVAL expr type):日期加上一个时间间隔值;

DATE_SUB(date,INTERVAL expr type):日期减去一个时间间隔值;

DATE(date)、TIME(date)、YEAR(date):选取日期时间的各个部分:

EXTRACT(unit  FROM  date):从日期中抽取出某个单独的部分或组合;

DAYOFWEEK(date) 、DAYOFMONTH(date) 、DAYOFYEAR(date):返回日期在一周、一月、一年中是第几天

DAYNAME、MONTHNAME:返回日期的星期和月份名称;

DATE_FORMAT(date,format):格式化日期;

TIME_FORMATE(time,formate):格式化时间;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值