mysql基础入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tester92/article/details/79978495

数据库存储方式:关系性存储NO SQL(N-not O-only)

关系性存储:二维法,具有搜索快的优点,但是结构不能太复杂

92标准:

99标准:

2016标准:

NO SQL(N-not O-only):使用key-value键值对存储

数据库操作:

显示当前服务器中有多少个数据库:show databases;

创建数据库:create database  数据库名称  实例: create database student;

进入(使用)某个数据库:use 库名; 实例:use student;

查看数据库中有哪些表:show tables;

删除数据库:drop database 库名 实例:drop database student;

表操作:

创建表(注意表名后跟的是小括号):create table 表名(字段1  类型1,字段2  类型2...)

创建表1-不指定字段长度,整数类型int

实例:create table wx1(mid int  primary key); int 默认字段长度11      

创建表2-指定字段长度,指定主键:create table 表名(字段1  类型1,字段2  类型2...)

实例:create table wx1(mid int(8) primary key);也可以直接指定字段长度,例如8

创建表3-有多个字段,含整数类型int和字符串类型varchar,注意字符串类型一般指定为偶数长度

实例:create table wx1(mid int(8) primary key,mname varchar(20).msg varchar(500));

创建表4-有多个字段,含整数类型int和字符串类型varchar,时间字段(时间字段最常用的类型:date 格式"yyyy-mm-dd")实例:create table wx31(mid int(8) primary key ,mname varchar(32),msg varchar(32),time date);

创建表5-主键自动增长 使用关键字auto_increment,写在primary key后面

实例:create table wx1(mid int(8) primary key  auto_increment,mname varchar(32),msg varchar(32),time date);

查看表结构:desc 表名; 实例:desc wx1;

删除表:drop table 表名;实例:drop table wx1;

插入记录(数据),注意:当字符串类型和时间类型的值需要用单引号('')括起来!!!

insert into 表名 (字段1,字段2,...)values(字段1的值,字段2的值,...);

实例:insert into wx1(mid,mname,msg)values(1,'z3','hello')---主键没有自动增长

         insert into wx1(mname,msg,mtimes)values('z3','hello','2018-04-17)---主键自动增长时,排除主键,插入数据     

结构化s查询q语言l:sql crud-增删改查

查看所有记录:select * from 表名;(select后面的*表示所有列) 实例:select * from wx1;

如果想指定显示固定某几列,select后面就不能用*,而用列名,列名之间用逗号(,)分开

实例:select mid,msg from wx1;

如果想选择某几行数据,要用where。where要放在from的后面。同时要有=,<,>等等条件

实例:select * from wx1 where mid=1;mid为int类型,不需要单引号。

不同版本的mysql要求不一样,有可能也需要写成select * from wx1 where mid='1';

      select * from wx3 where mname='zs'; mname是字符串类型,需要单引号括起来

where条件中常用的两个关键字:and 和 or

and表示左右两边的条件必须同时满足

实例:找出姓名为zs且主键是1的数据 select * from wx1 where mname='zs' and mid='1';

or左右两边满足一个条件就行(查询引擎发现该条记录满足左边,即添加到查询结果中)

实例:找出姓名为zs或者主键是1的数据 select * from wx1 where mname='zs' or mid='1';

练习题:找出mid大于2的所有记录 select * from wx1 where mid>2;

where 还常用于修改记录和删除记录(数据)

修改数据 :update 表名 set 字段1名=新值,字段2名=新值 where 唯一性字段(一般是主键)=旧值 

实例;update wx3 set  mname='w5',mtimes='2018-01-16' where mid=3;

删除数据:delete from 表名 where 主键=值; 实例:delete from wx3 where mid=1;

主键创建方式:列级约束和表级约束

列级约束:主键关键字在第一个字段上,称为列级约束。只约束一个列。

列级约束实例:create table wx2(mid int(8) primary key,mname varchar(20),msg varchar(500));

                       create table wx1(mid int not null,mname varchar(32));

表级约束实例:create table wx1(mid int ,mname varchar(32),primary key(mid));

最后的primary key就是表级约束,小括号中的mid就是给mid指定为主键。表级约束primary key(只能写在最后面)

排序:正序asc和倒序desc

排序关键字order by,写在from 和where的后面

正序asc:select * from torder order by orderPrice asc;

倒序desc:select * from torder order by orderPrice desc;

联系题:创建一个名叫shop的数据库,库中有三个表,
第一个表叫user,内容uid主键,uname名字,pwd密码,authz权限
第二个表叫工资表sal,内容sid主键,uname名字,sal工资,dept部门
第三个表叫订单表torder(当为order时,存在关键字重复,建表失败),内容oid主键,orderPrice价格,orderDate时间,customer客户

请创建这三个表,并给这些字段合理的类型。在(order)订单中插入六条数据)

答:create database shop;
create table user(uid int primary key auto_increment,uname varchar(32),pwd varchar(32),authz varchar(32));
create table sal(sid int primary key auto_increment,uname varchar(32) not null,sal int,dept varchar(32));
create table torder(oid int primary key auto_increment,orderPrice int,orderDate date,customer varchar(32));

insert into torder(orderPrice,orderDate,customer)values(100,'2018-04-01','a1');

-----------------------------以下待后续补充---------------------------------------

重要的5个组函数:

avg()取平均值
sum()取总和
max()取最大值
min()取最小值
count()取个数


多表操作:
select * from table1;
变形:
select user.uname,user.pwd from user;
多个表中一起查询:
select * from 表1,表2;
select * from sal,user;

找密码是root的人挣多少钱?(存在笛卡尔积的问题)
 select user.pwd,sal.sal from user,sal;


-----------------------------待后续补充---------------------------------------

小窍门:

1、运行sql语句,如果显示Query OK ---命令运行成功

2、mysql只用小括号( ),不用<>

3、mysql不区分大小写,但是表中的数据一定要区分大小写(主要是和java联系起来使用要注意)

4、输入错误,误输入" 或者 ' 后,导致一直退不出错误模式,解决方法
mysql> "
    ">
解决方法:输入",然后输入;

mysql> '
    '>
解决方法:输入',然后输入;

总结:大于号(>)前面是什么号,输入,再使用;即可退出错误模式。

5、mysql 默认端口3306

6、在mysql命令行界面,右键-选择标记,选择需要复制粘贴的文字,按回车键,即可在记事本上进行粘贴操作

7、数据库命名(数据库名称需要小写、有意义、是名词)例如:正确:student 错误:hello,s1...

8、安装mysql后,系统自带的两个库information_schema和mysql不能进行删除,否则mysql服务起不来

9、遵循开闭原则:对扩展开放,对修改关闭

10、遵循范式(5):第一条:表中记录要有唯一性,主键不参与业务逻辑,主键不能重复也不能为空


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页