Mysql入门语法

Mysql入门语法

1.创建一个新的数据库(以test为例):
create database test;
// 成功返回信息:Query OK, 1 row affected
2.显示当前所有数据库:
show databases;
// 成功返回信息: 数据库表一览 + n(数据库个数) rows in set
3.删除一个数据库(以test为例):
drop database test;
// 成功返回信息: Query OK, 0 rows affected
4.进入指定数据库(以test为例):
use test;
// 成功返回信息: Database changed
5.在当前数据库下建表:
/**
 形式: create table 表名称 (
     列名称1  数据类型  约束,
     列名称2  数据类型  约束,
     列名称3  数据类型  约束,
     ...
 )其他表信息...;
 */

 //下面是一个最简单的建表语句

  create table table_test (
  id int(10),
  name varchar(30),
  regTime date
  );
数据类型(data_type)规定了列可容纳何种数据类型,下面是一些常用的数据类型
数据类型描述
integer(size) int(size) smallint(size) tinyint(size)仅容纳整数,在括号内规定数字的最大位数
decimal(size,d) numeric(size,d)容纳带有小数的数字,”size”规定数字的最大位数。”d”规定小数点右侧的最大位数
char(size)容纳固定长度的字符串(可容纳字母,数字以及特殊字符)。在括号中规定字符串的长度
varchar(size)容纳可变长度的字符串(可容纳字母,数字以及特殊字符)。在括号中规定字符串的最大长度
date容纳日期
sql约束:

约束用于限制加入表数据的类型,可以在创建表时规定约束,也可以在创建之后。

  • not null:not null 约束强制列不接受null值,not null约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或更新记录
create table persons (
id int not null,
name varchar(30) not null,
birthday date
);

//上面的sql语句强制id和name列不接受null值
  • unique: unique约束唯一标识数据库中的每条记录 , unique 和 primary key 约束均为列或列集合提供了唯一性的保证。primary key 拥有自定义的unique约束。注意:每个表可以有多个unique约束,但是只能有一个primary key约束
create table persons (
id int not null,
name varchar(30) not null,
birthday date,
unique(id)
);

//上面的sql语句表明id列的元素可以唯一标识表中的每条记录


create table persons (
id int not null,
name varchar(30) not null,
birthday date,
constant uc_personID unique (id,name)

//多个unique值
);
  • primary key: primary key约束唯一标识数据库表中的每条记录,主键必须包含唯一的值,主键列不能包含null值,每个表都应该有一个主键,并且只能有一个主键
create table persons (
id int not null,
name varchar(30) not null,
birthday date,
primary key(id)
);
  • foreign key: 一个表中的foreign key指向另一个表中的primary key,foreign key约束用于预防破坏表之间连接的动作。foreign key约束也能防止非法数据插入外键列,因为它必须是指向的那个表中的值之一
//现有table_test表,其中的id列被primary key约束,现在我们创建一个for_test表指向它的id

create table for_test(
 address varchar(20),
 id int(10),
 foreign key (id) references table_test(id)
 );

 //这里table_test表中的id列是表中的primary key
 //for_test表中的id列是表中的foreign key

 //此时如果向表中插入记录
 insert into for_test (address,id) values ("北京",1001);
// 如果 对应在table_test的id列中存在1001,则插入成功,否则失败
  • check:check约束用于限制列中的值的范围,如果对单个列定义check约束,那么该列只允许特定的值,如果对一个表定义check约束,那么此约束会在特定的列中对值进行限制
create table persons (
id int not null,
name varchar(30) not null,
birthday date,
check (id > 0)   //id列的元素必须大于0
);
  • default : default约束用于向列中插入默认值,如果没有规定其他的值,那么会将默认值添加到所有的新记录
id int not null,
name varchar(30) not null default "保密", //若一条记录中没有插入该列元素,则默认存储该值
birthday date,    
primary key(id)
);

6.显示当前数据库下所有表:
show tables;
//成功返回信息: 表名一览 + n(表数目) rows in set
7.描述表各列类型信息与约束(以table_test表为例)
describe table_test;
8. 从表中抽取信息
1>.抽取表中所有信息(以table_test表为例):
select * from table_test;
2>.抽取表中指定列信息(以table_test表为例):
select id,name from table_test;//只抽取出id列和name列信息
3>.条件性地抽取表中信息(以table_test表为例):

语法:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

select * from table_test where id > 1001; //抽取出表中id>1001的记录
4>.抽取出排序后的表信息:

ORDER BY 语句用于根据指定的列对结果集进行排序。

ORDER BY 语句默认按照升序对记录进行排序。

如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

select * from table_test order by id;

9.删除表中某条记录(以table_test表为例):

语法:DELETE FROM 表名称 WHERE 列名称 = 值;

delete from table_test where id = 1012;//删除id为1012的那条记录
10.插入一条记录到表中(以table_test表为例):

语法:INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,….);

insert into table_test (id,name) values (1035,"Young");
//第一个括号中是要新增的记录的列名
//第二个括号中是与第一个括号中相对应的列的实际值
11.修改表中数据(以table_test表为例):

语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;

update table_test set name = "redefine" where id = 1001;
12.删除表(以table_test表为例):
drop table table_test;
13.在表中添加新的一个列

格式:alter table 表名 add 新增列名 列元素类型 约束;

alter table table_test add age int(10);
14.在表中删除一个列

格式:alter table 表明 drop 要删除的列名;

alter table table_test drop age;
15.表内排序

格式: select 列名 from 表名 order by 列名 asc(升序)或desc(降序);

select userId,math from stu_grade order by math desc;
16.count()函数:

格式:
- select count(列名) from 表名;//返回指定列的值的数目(null不计)
- select count(*) from 表名;//返回该表中的记录数

select count(*) from stu_grade;
17.group by

group by 列名 :就是把一张表中该列名中元素相同的记录并在一起,并进行其他操作

  • 例如下面这张表

image.png

筛选出学号与班级信息,现在如果想统计每个班分别有几个人,就可以使用下面这条语句

select classroom,count(*) from stuifo group by classroom;

结果:

image.png


18.now() 函数

说明:返回当前的日期和时间

 insert into time_test (regTime) values (now()) ;
19. 数学相关函数
  • 1>.avg(): AVG函数返回数值列的平均值。NULL 值不包括在计算中。
  • 2>.max(): MAX 函数返回一列中的最大值。NULL 值不包括在计算中。
  • 3>.min(): MIN 函数返回一列中的最小值。NULL 值不包括在计算中。
  • 4>.sum(): SUM 函数返回数值列的总数(总额)。
  • 5>.round():ROUND 函数用于把数值字段舍入为指定的小数位数。
20 increment

说明:Auto-increment 会在新记录插入表中时生成一个唯一的数字。

CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
);

若要指定序列的起始值,可以在建表时说明。例如:

CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
) auto_increment = 100;

或者在建表之后:

ALTER TABLE Persons AUTO_INCREMENT=100;
21.数据类型:
  • 文本类型
    image.png

  • 数字类型
    image.png

  • 日期/时间类型

image.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值