mysql 在命令中非有效_mysql

安装mysql教程,网上有很多,这里就过多的介绍了。

连接数据库

打开命令行,输入以下命令

mysql -u root -p123456

以上是mysql在本地的连接方式,如果mysql安装在服务器呢,我们需要怎么连接呢。其实只需要在以上命令上面加上-h 主机名和-P

端口号即可。

注:端口号的P是大写的。

mysql -h 192.168.0.53 -P 3306 -u root -p123456

数据库操作

创建数据库

create database develop default charset utf8;

这里创建一个名为develop的数据库 ,并指定默认编码为utf8。

查看数据库

show databases;

删除数据库

drop database develop;

进入数据库

use develop;

查看数据库详细信息 可以使用 status命令

数据类型

sql中的数据类型分为三大类,详细的分类请查看MySQL 中的数据类型介绍

数值类型

7ab8862de30e

日期和时间类型

7ab8862de30e

字符串类型

7ab8862de30e

数据表操作

查看所有数据表

show tables;

创建数据表

create table t1(

#id从1自动省长,并设置为主键

id int auto_increment primary key,

#设置name不可以为null,如果插入时没有name则会报错,默认是可以为null

name varchar(50) not null,

#设置username不可以为null,并且其值在数据表里是唯一的,不可重复

username varchar(255) uniqu not null,

#设置age是无符号的正整数,并且默认值为0

age int unsigned default(0)

)

显示表信息

desc t1;

查看表结构

show create table t1;

显示创建表的sql语句

添加列

alter table t1 add phone varchar(50);

修改列

alter table t1 change phone age int;

把原先的phone列改名为age,并修改数据类型为int

删除列

alter table t1 drop phone;

删除表

drop table t1;

数据行操作

插入

往数据表里插入数据

insert into t1 (column1,column2...) values (value1,vaule2...);

查询

查询是数据库里使用的最频繁的操作,据统计数据库的读写比例为10:1,由此可见查询是有多么重要。

为了满足各种复杂的需求,我们也需要写出各种复杂的sql,所以难度系数最高的也是查询。

简单的查询

select * from t1;

从数据表里获取所有记录,这里的*是一个通配符,即返回结果集里所有列

带条件查询where

select id,name from t1 where id = 1;

从t1表中查询符合id=1行的id,name

in操作符

in查询某值是否在某条件里,相反的也有not in

select * from t1 where id in (select cid from t2 where name = 'test')

select 语句返回的结果集可以作为条件继续查询

多条件查询 and,or

and 逻辑与 即两边的条件都符合才成立

or 逻辑或 即两边的条件只要满足一个就成立

select * from meizi where name='lucy' or (height>160 and weight <= 120)

这里使用了一个算术优先级,把括号内的内容做为一个整体条件

范围匹配

select * from meizi where age between 18 and 30 ;

查找age在18~30之间的所有行,这里只能采用and操作符,不能使用or

null

select * from meizi address is null;

查找符合地址为null的数据

select * from meizi address is not null;

查找地址不为null的mz

通配符

"%" 匹配任意数目字符(包括零个字符)

"_" 匹配任何单个字符

在sql中匹配模式中不能使用!=或者=来进行匹配,而是使用like或not like比较操作符。

使用示例:

select * from t1 name like 'l%'

匹配所有name以l开头的

select * from t1 name like '_ucy'

匹配所有name第一个字符为任意字符,并以ucy结尾

排序

排序使用order by对指定的列进行排序,使用 desc降序 asc升序 排序规则进行排序

select * from meizi order by age desc;

对age进行降序排序,最大的数值在最前面。如果不指定desc,则默认按asc升序进行排序

对多个列排序

select * from meizi order by age desc,name,height;

如果第一个列值相同,才会对二个列按指定的规则进行排序,第三列同上

order by 可以对任何数据类型进行排序,varchar,text等类型 则按ascii码表的值进行排序

聚合函数

mysql常用的聚合函数如下:

count(exrp) 返回指定列中非null值的个数

avg(exrp) 返回指定列的平均值

max(exrp) 返回指定列的最大值

min(exrp) 返回指定列的最小值

sum(exrp) 返回指定列的所有值的和

分组查询

使用group by对指定列不同的值进行分组,group by一般和聚合函数一起使用才有意义

使用group by有两个要素

出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的.

要筛选结果 可以先使用where 再用group by 或者先用group by 再用having

having和where都是对条件进行筛选,SQL语言中设定集合函数的查询条件时使用having而不是where。通常情况下,having被放置在SQL命令的结尾处。

使用示例:

select age from t1 group by age;

select age,height from meizi where age >18 group by height having height > 165;

连接查询

在sql中 分为三个连接

inner join 内连接(一般简写为join),获取两个表中字段匹配关系的记录

left join 左连接,获取左表所有记录,即使右表没有对应匹配的记录

right join 右连接,与left join相反

这三种连接的使用方式都是相同的,只是连接后的取值方式略有差异

使用示例:

select * from t1 join t2 on t1.id = t2.pid

使用连接操符后如果没有 on 的条件,会出现笛卡尔积

删除

delete from t1;

这样是删除整个表里的数据,请谨慎使用。

如果只是删除指定的的数据,使用where关键字后跟上根据查询条件删除。如:

delete from t1 where name = 'test';

删除name等于test的所有行

更新

更新数据表,使用update关键字,后面也需要跟上查询条件进行更新,否则是更新整个表

update t1 set name='czlyj' where id = 1;

更新所有符合id=1行

注:执行更新和删除操作时,尤其要谨慎,一但操作失误,数据也无法恢复,所以尽量使用唯一的条件去匹配,避免照成不必要的损失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值