因为有几个公司的小哥哥想学mysql,逼迫我写点关于mysql的基础入门知识,废话不多说直接上干货。
学习mysql首先要学会配置环境,网上教程很多,此处忽略,
接下来通过命令(mysql -uroot -p 密码)连接mysql或者采用可视化工具比如navicat、phpmyadmin等
然后就是一系列的操作:
******************************************* 创建数据库 ******************************************
** 创建数据库语法:create database 数据库名
** 删除数据库语法:drop database 数据库名
**
** 创建的例子:
create database StudentDB --创建数据库
** 删除的例子:
drop database studentDB --删除数据库
**
**
******************************************* 创建表 ******************************************
** 语法:
** create table 表名
** (
** 列名1 数据类型 是否可以为空,
** 列名2 数据类型 是否可以为空,
** . . .
** . . .
** . . .
** )
** 注意:1.每列的最后有一个逗号(,)只有最后一列没有逗号。
** 2.每个表都要有一个主键,
** 3.主键定义:能唯一标识表中每条记录的列(或者列的组合)。
** 4. IDENTITY(1,1) 这是自动增长的意思,参数1是种子,参数2 是增量。 一般用在自动增长列,并且此列必须是整形。
** 5. Primary Key 这个关键字的作用是将此列设置成主键,一般用在要将此列设置成主键的情况下。
** 6. 一个表一般只有一个主键。不能有多个主键,但是可以有多个索引。
** 删除表语法:drop table 表名
** 修改表:alter table 表名
alter column remark nvarchar(60)
添加表字段:alter table 表名
add *** int
** 例子(创建学生表):
create table Student
(
ID int IDENTITY(1,1)not null Primary Key,--主键用来唯一标识表中的行
code nvarchar(50) not null,--学生编号,数据类型是字符串类型,并且不能为空,编号长度最多可以输入50个字符。
name nvarchar(50) null,--学生姓名,可以为空,数据类型是字符串类型,编号长度最多可以输入50个字符。
sex char(1) null, --性别,可以为空,数据类型是字符型的,最多可以输入一个字符。里面的值咱们可以定义为 (1代表男 2代表女)
age int null ,--学生年龄,可以为空,数据类型是整形的。
profession nvarchar(50) null,--学生专业,可以为空,数据类型是字符串类型的,长度最多可以输入50个字符
inschoolDate datetime null,--入学日期,可以为空, 数据类型是日期类型的。
grade float null,--学生成绩,可以为空,数据类型是浮点型的(小数型的)
)
**例子(删除学生表):
drop table Student;
******************************************* 插入数据 ******************************************
** 语法:
** insert into 表名 (列名1,列名2,列名3,...,列名8) values (列1的值,列2的值,列3的值,...,列8的值);
** 例子(插入5个学生):
insert into Student(code,name,sex,age,profession,inschoolDate,grade)values('1000001','张三','1',23,'信息管理专业','2012-09-09',30.4);
insert into Student(code,name,sex,age,profession,inschoolDate,grade)values('1000002','李四','1',26,'土木工程','2012-09-09',80.1);
insert into Student(code,name,sex,age,profession,inschoolDate,grade)values('1000003','王五','2',36,'会计','2012-09-09',90.1);
insert into Student(code,name,sex,age,profession,inschoolDate,grade)values('1000004','赵六','2',30,'计算机应用','2012-09-09',40.0);
insert into Student(code,name,sex,age,profession,inschoolDate,grade)values('1000005','王二麻子','3',25,'英语','2012-09-09',60.1);
******************************************* 删除数据 ******************************************
** 语法:delete [from] 表名 while 条件
**
** 注意:如果后面没有while 条件 是清空表中的数据,即:全部删除
**
**例子:(删除学生表中的数据):
delete Student --删除学生表中所有的信息。
delete Student where code='1000001' --删除学生编号是1000001的学生,根据条件删除
******************************************* 修改数据 ******************************************
语法:
update 表名 set 字段1=值1,字段2=值2,......,字段n=值n where 条件;
注意:如果后面没有while 条件 会全部修改
**
**例子:
update Student set profession='软件技术',age=90,grade=100 where code='1000004' --修改学生编号为1000004同学的专业为"软件技术",年龄为90岁,成绩为100分。
******************************************* 单表数据查询 ******************************************
**
** 语法: select 列名1,列名2,列名3,.... from 表名 where 条件;
** 注意:1.如果后面没有while 条件 会把表中所有的数据全部查询出来
2.如果想查出所有的列可以用 * 代替。
** 扩展: select @@IDENTITY 这个查询是查询当前自动生成的最大ID,一般放在insert 语句之后。
**
例子:
select * from Student --查出所有的学生全部信息
select * from Student where name='李四' --查询姓名等于李四的同学
select * from Student order by code desc --将查出的结果倒序排序 注意: desc 是倒序排序, asc为正序排序,默认是asc
select profession,name from Student group by profession,name --先按照专业分组,然后按照name分组
select code as 编码,name 姓名 from Student --取别名用 as 或用空格
select code,name,case when sex='1' then '男' when sex='2' then '女' else '伺候太后的' end as 性别,age,profession,inschoolDate,grade from Student
至此,mysql基础curd操作完成。