$dbms=mysql_Mysql语句

MYSQL命令:1. 进入DBMS mysql -u用户名 -p密码2. 进入他人的DBMS mysql -h地址 -u用户名 -p密码3. 创建数据库create database 数据库名4. 删除数据库 drop database 数据库名5. 查看现有数据库 show databases6. 查看数据库下面的表 show tables;7. 切换数据库 use 数据库名8. 查看数据库的状态 \s;9. 退出 quit或\q;10. 启动mysql服务 net start mysql ,停止net stop mysql;11.char与varchar的区别:在数据库中char(11)和varchar(11)都可以代表字符串,

将xiaochun这个字符串存在char(11)中的效果是xiaochun___,

如果存在varchar(11)中的效果是xiaochun,

如果字符串的长度未达到char的指定长度,就会用空格填充

如果字符串的长度未达到varchar的指定长度,不会用空格填充

char字段读取速度会很快,varchar需要算出字段长度后再读出

建议,对于知道长度的字符串用char,比如性别

对于不知道长度的用varchar ,比如姓名12. 表的创建语法:

create table 表名(

列名 数据类型 notnull,

列名 数据类型,

.........

列名 数据类型

)13.表中插入语句:

insert into 表名 values(1,'张三',18);//注意插入的数据和列要一一对应

14.查看表中所有的数据的语句

select 列名,列名..... from 表名;//查看指定表中所有数据

15.desc 表名, 查看表结构16. create table b(

bidint auto_increment, --自动增长,定义自动增长的列必须定义为主键

bname varchar(10),

bcard varchar(18),

primary key(bid),--主键

unique(bcard));--该列唯一值17. create table c(

cidintauto_increment,

cname varchar(20),

bidint,

primary key(cid),

foreign key(bid) references b(bid));--和上表建立了主外键关系,只有主键才能在--另外一张表中做为外键--所以我们看到当c表中插入了一个b表中不存在的bid时,就会报错,因为有了主外键关系就会--检查数据的有效性18. 删除一条记录

delete from 表名;--删除表中的所有记录

delete from 表名 where bid=3; --删除一条记录

要注意,如果该行记录在另外一张表中做了外键,就不能删除了,必须先删掉做外键的记录19. 删除 drop database wlk;

drop databaseifexists wlk;

drop table wlk;

drop tableifexists wlk;20. 插入语句,一次多条

mysql> insert into s values('1005','单单','中空油','22'),('1006','国加','央企','22');

21. mysql> update s set sd='中原油',sa='24' where sid='1005'

--修改表中的数据,可以一次改动多列,但一定要限定where条件,避免整张表被修改22. mysql> select * from s where sa > 23; --带条件的查询,纯数字的字符串可以当成数字计算--以时间为格式的字符串,可以当成时间计算23. mysql> select * from s where sa in (23,24); --查找23,24年纪

mysql> select * from s where sa between 23 and 30; --查找大于等于23,小于等于30;

mysql> select * from s limit 0,3; --查找前三条

mysql> select * from s limit 3,6; --从第4条开始,查6条24. mysql> select * from s order by sa asc; --查看s表,并以sa为升序排列, asc可省,因为默认值;

mysql> select * from s order by sa desc; --降序排列

mysql> select * from s where sa>23order by sa desc;25. 1001考了几门

mysql> select count(*) from sc where sid='1001'; --count计算结果有多少行1001的最高分

mysql> select max(g) from sc where sid='1001'; --max取出结果中指定列的最高值1001的最低分

mysql> select min(g) from sc where sid='1001'; --min取出结果中的指定列的最低值1001的平均分

mysql> select avg(g) from sc where sid='1001'; --avg取出指定列的平均分26. 取出所有考试人员的平均分--在sql中使group by 列名,将同名列分在一起,分组的意思27. mysql> select sid , avg(g) from sc group by sid; --在sc表中按sid分组,并求出每组的平均值

mysql> select sid , avg(g) from sc where g>70 group by sid; --在sc表中按sid分组,求出每组大于70分的成绩的平均值

mysql> select sid , avg(g) from sc group by sid having avg(g) > 85; 在sc表中按sid分组求出每组的平均值--但是小于等于85的成绩不要显示了

mysql> select sid , avg(g) from sc where g>70 group by sid having avg(g) > 84order by avg(g);--首先将g<=70分的所有成绩不要,然后分组求出平均成绩,然后只显示平均分大于84的成绩

mysql> select sid , avg(g),max(g),min(g),count(cid) from sc where g>70 group by sid having avg(g) > 84;28. mysql> select * from female where mid is not null; --null值的查询29. 找出和女人有关系的男人的姓名

mysql> select f.fid ,f.fname ,(select mname from male m where m.mid=f.mid) '她男

人的名字' from female f; --注意内置的select语句,子查询,注意表和列的别名

30. 打印出课目名,考生名和其成绩使用SC表

mysql> select (select cn from c where c.cid=sc.cid) 'cn', (select sn from s whe

re s.sid=sc.sid) 'sn',g from sc;

用连接查询来解决问题:

mysql> select s.sn,c.cn,g from sc inner join s on sc.sid =s.sid inner join c-> on c.cid=sc.cid;31. 列出和女人有关系的姓名,没有关系的女人不列出

内连接查询:根椐条件f.mid=m.mid把两张表合并在一起,如果不满足条件的将不会列出(即找不到相等的)

inner join .......on.....

mysql>select f.fid,f.fname,m.mname from female f inner join male m on-> f.mid =m.mid;

外连接(左,右)查询:根椐条件f.mid=m.mid把两张表合并在一起,如果左边表有 没有满足条件的也列出来32. 找出考了税收基础的人名和成绩

a.找到税收基础的编号 :mysql> select cid from c where cn='税收基础'; //cid=s001

b.拿着cid=s001去sc表中查询出哪些sid考了这门及成绩

c.合并解决问题

mysql> select cid,(select sn from s where s.sid=sc.sid) 'sn',g from sc where cid=(select cid from c where cn='税收基础');

mysql> select cid,s.sn,g from sc inner join s on s.sid=sc.sid where cid=(select

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值