mysql 第二天数据_MySQL入门第二天------数据库操作

一、基本命令

1、启动服务器

cmd

net start [服务器名称]

net start mysql57

2、停止服务器

cmd

net stop [服务器名称]

net stop mysql57

3、链接数据库

mysql -u 用户名 -p 登录密码

mysql -u root -p

4、退出登录

quit

exit

\q

5、查看版本(连接后执行)

select version();

6、查看当前时间(连接后执行)

select now();

7、远程链接

mysql -h ip地址 -u 用户名 -p密码 -P服务器端口号(默认3306)

二、数据库操作

1、创建数据库

格式: create database 【数据库名】 charset=utf8;

示例:create database sunck charset=utf8;

2、删除数据库

格式: drop database 【数据库名】;

示例:drop database sunck;

3、切换数据库

格式:use [数据库名]

示例:use sunck;

4、查看当前选择的数据库

select database();

三、表操作(切换到当前数据库后使用)

1、查看当前数据库中所有表

show tables;

2、创建表

格式:create table 表名(列及类型)

说明:auto_increment 表明自增长 primary key 表示主键

not null 表示不为空

示例:create table student(

id int auto_increment primary key,

name varchar(20) not null,

age int not null,

gender bit default 1,

address varchar(20),

isDelete bit default 0

);

3、删除表

格式:drop table 【表名】;

示例:drop table student;

4、查看表结构

格式:desc 【表名】;

示例:desc student;

5、查看建表语句

格式:show create table 【表名】;

示例:show create table student;

6、重命名表名

格式:rename table 元表名 to 新表名

示例:rename table car to newCar;

7、修改表

格式:alter table [表名] add|change|drop 列名 类型;

示例:alter table newCar add isDelete bit default 0;

四、数据操作

1、增

a、全列插入:

格式:insert into [表名] values(...)

说明:主键列是自动增长的,但是在全列插入时需要占位,通常使用0,

插入数据以后以实际数据为准

示例:insert into student values(0,"韩梅梅",15,0,"北京",0);

b、缺省插入:

格式:insert into tablename(column1,column2,.....) values(value1,value2,.....);

示例:insert into student(name,age,address) values ("lilei",19,"上海");

c、同时插入多条数据:

格式:insert into tablename values values(...),(...),...;

示例:insert into student values (0,"穆桂英",28,0,"河南",0),(0,"杨帅",20,1,"河北",0),(0,"刘秀",35,1,"石家庄",0);

2、删

格式:delete from tablename;全部删除,删除整个表的数据

delete from tablename where 条件;

示例:delete from student where id=7;

注意:没有条件是全部删除,慎用。

3、改

格式:update tablename set 列1=值1,列2=值2,....

update tablename set 列1=值1,列2=值2,.... where 条件

示例:update student set age =16 where id=4;

注意:没有条件是全部修改,慎用。

4、查

格式:select * from [tablename];

说明:查询表中的全部数据

示例:select * from student;

五、查

1、基本语法

格式:select * from [tablename];

说明:查询表中的全部数据 a、from 关键字后面是表名,表示数据来源于这张表

b、select 后面写表中的列名,如果是* 表示结果中集中显示表中的所有列

c、在select后面的列名部分,可以使用as为列名起别名,这个别名显示在结果集中

d、如果要查询多个列,之间用逗号分隔

示例:select * from student;

select name,age from student;

select name as "姓名",age from student;

2、消除重复行

在selecthoumian 列前前面使用 distinct 可以消除重复的行

示例:select distinct name,age from student;

3、条件查询

a、语法

select * from 表名 where 条件

b、比较运算符

操作符描述实例

=等号,检测两个值是否相等,如果相等返回true(A = B) 返回false。

<>, !=不等于,检测两个值是否相等,如果不相等返回true(A != B) 返回 true。

>大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true(A > B) 返回false。

>=大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true(A >= B) 返回false。

<=小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true(A <= B) 返回 true。

c、逻辑运算符

and

or

not

d、模糊查询

like

% 表示任意多个任意字符

_ 表示一个任意字符

select * from student where name like "刘%";

select * from student where name like "刘_";

e、范围查询

in 表示在一个非连续性的范围内

between... and ... 表示在一个连续范围内

需求:查询编号为8,10,12的学生

示例:select * from student where id in (8,10,12);

需求:查询编号为6-8的学生

示例:select * from student where id between 6 and 8;

f、空判断

insert into student(name,age) values ("daojun",69);

注意:null 与"" 是不同

判断空: is null

判断非空: is not null

需求:查询没有地址的同学

示例: select * from student where address is null;

g、优先级

小括号, not 比较运算符,逻辑运算符

and 比or 优先级高。

4、聚合

为了快速得到统计数据,提供五个聚合函数

a、 count(*) 表示计算总行数,括号中可以写* 和列名

b、 max(列) 表示求此列的最大值

c、 min(列) 表示求此列的最小值

d、 sum(列) 表示求此列的和

e、 avg(列) 表示求此列的平均值

需求:查询学生总数

示例: select count(*) from student;

需求:查询女生的编号最大值

示例: select max(id) from student where gender=0;

需求:查询女生的编号最小值

示例: select min(id) from student where gender=0;

需求:查询女生的年龄和

示例: select sum(age) from student where gender=0;

需求:查询学生年龄平均值

示例: select avg(age) from student;

5、分组

按照字段分组,表示此字段相同的数据会被放到一个集合中。分组后,只能查询出相同的数据列。

对于有差异的数据列,无法显示在结果集中

可以对分组后的数据进行统计,做聚合运算。

语法:select 列1,列2,聚合... from 表名 group by 列1,列2,列3,.... having 列1,列2,.....,聚合...

需求:查询女生和男生总数

示例:select gender,count(*) from student group by gender;

select name,gender,count(*) from student group by gender,age;

需求:分组后的数据筛选

示例: select gender,count(*) from student group by gender having gender;

select gender,count(*) from student group by gender having gender;

where 与 having的区别

where 对from 后面的制定的表进行筛选,属于对原始数据的筛选

having 是对结果集 group by 的结果进行筛选

6、排序

语法: select * from 表名 order by 列1

asc|desc, 列2 asc|desc,....

说明:

a、将数据按照列1进行排序,如果某些列1的值相同,则按照列2进行排序

b、默认按照从小到大的顺序排序

c、asc升序

d、desc降序

需求:按照年龄排序

示例: select * from student order by age;

需求:按照没有删除的数据的年龄排序

示例: select * from student where isDelete=0 order by age desc,id desc;

30987ee07b1932d4aa8cc9f65b166555.png

683d033f50c4c1c5bef1a0990ec55ca2.png

7、分页

语法:select * from 表名 limit start,count;

说明: start索引从0开始

示例:select * from student limit 0,3;

select * from student limit 3,3;

select * from student where gender=1 limit 0,3;

六、关联

外键去关联其他表。

建表语句:

create table class(id int auto_increment primary key, name varchar(20) not null,stuNum int not null);

create table students(id int auto_increment primary key, name varchar(20) not null,gender bit default 1,classid int not null,foreign key(classid) references class(id));

插入数据:

insert into class values(0,"python01",45),(0,"python02",20),(0,"python03",30),(0,"python04",34),(0,"python05",28);

insert into students values(0,"tom",1,1);

insert into students values(0,"lilei",1,1);

insert into students values(0,"jack",1,2);

insert into students values(0,"韩梅梅",0,1);

关联查询

select students.name,class.name from class inner join students on class.id=students.classid;

select students.name,class.name from class left join students on class.id=students.classid;

select students.name,class.name from class right join students on class.id=students.classid;

分类:

1、表A inner join 表B

表示 表A与表B的行会出现在结果集中

2、表A left join 表B

表A与表B的行会出现在结果集中,外加表A中独有的数据,未对应的数据使用null填充

3、表A reft join 表B

表A与表B的行会出现在结果集中,外加表B中独有的数据,未对应的数据使用null填充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何打开java_怎样运行java

怎样运行java? 第一步:下载并安装JDK 6.0,安装路劲为: C:\java\jdk1.6 . 第二步:对“我的电脑”按右键,选“属性”,在“系统属性”窗口中选“高级”标签,再按“环境变量”按钮,弹出一个“环境变量”的窗口,在系统变量中新建一个变量,变量名为“JAVA_HOME“,变量值为…

java 字符串匹配_多模字符串匹配算法原理及Java实现代码

多模字符串匹配算法在这里指的是在一个字符串中寻找多个模式字符字串的问题。一般来说&#xff0c;给出一个长字符串和很多短模式字符串&#xff0c;如何最快最省的求出哪些模式字符串出现在长字符串中是我们所要思考的。该算法广泛应用于关键字过滤、入侵检测、病毒检测、分词…

java http 异步请求框架_GitHub - huangdali/MyHttpUtils: 一个非常好用的异步网络请求框架...

轻量级网络请求框架MyHttputils 一、前言本版代码大换血&#xff0c;使用了策略模式和构造模式来组织代码&#xff0c;增加了更加人性化的请求构造&#xff0c;代码质量提高、效率显著提升。(但是使用风格基本没变哦)2.0.2版本的基本的用法在《android网络请求框架》一个轻量级…

mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布

背景&#xff1a;在微信公众平台配置服务器URL时&#xff0c;使用了新浪云SAE自带的二级域名&#xff0c;提交时出现一个安全风险的警告&#xff0c;网上查了下&#xff0c;许多服务平台和团队也遇到同样的问题。经过一番研究 …为什么会有安全风险的警告&#xff1f;微信公众平…

java排序算法原理_排序算法原理与实现(java)

排序算法原理与实现(java) Java程序员必知的8大排序 [来源&#xff1a;本站 | 日期&#xff1a;2012年12月24日 | 浏览173 次] 字体:[大 中 小] 8种排序之间的关系: 1&#xff0c; 直接插入排序 (1)基本思想&#xff1a;在要排序的一组数中&#xff0c;假设前面(n-1)[n>2] 个…

ios django 连接mysql_Django---Django连接Mysql数据库

前面介绍了Django平台的数据交互&#xff0c;这些数据都是在本地存放着&#xff0c;修改内容或者重新启动服务&#xff0c;数据就消失了&#xff0c;如果我们把数据存放在数据库中&#xff0c;不就保存了吗&#xff1f;Django数据库Django中自带的也有数据库(sqlite3)&#xff…

java xmpp openfire_XMPP协议学习笔记三(Openfire服务器端搭建开发环境)

在了解了XMPP的基本结构和一些概念之后&#xff0c;我们暂时告别枯燥的理论学习&#xff0c;来动手搭建一下OpenfireSpark的开发环境&#xff0c;实际感受一下搭建整套IM通讯系统的过程。开发环境&#xff1a;windows XP sp3&#xff0c;Eclipse3.6.1&#xff0c;jdk1.6.0_24&a…

java接口经常变动前端怎么办_Java进程故障排查(CPU资源占用高,接口响应超时,功能接口停滞等)...

故障分析# 导致系统不可用情况(频率较大)&#xff1a;1)代码中某个位置读取数据量较大&#xff0c;导致系统内存耗尽&#xff0c;进而出现Full GC次数过多&#xff0c;系统缓慢&#xff1b;2)代码中有比较消耗CPU的操作&#xff0c;导致CPU过高&#xff0c;系统运行缓慢&#x…

使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

第二章java基础语法1、java关键字abstractbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseextendsassertfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewstrictfppackageprivateprotectedpublicreturnshortstaticsupersw…

用java实现楼层导航_JS实现网站楼层导航效果代码实例

壹 ❀ 引言对于楼层导航而言&#xff0c;还有个重要的功能就是&#xff0c;随着滚动条滚动&#xff0c;达到某层时得同步点亮楼层导航的小图片。由于我前面也说了不打算使用JQ&#xff0c;所以想着用JS去实现它&#xff0c;实现并不难&#xff0c;主要得弄清滚动满足怎样的条件…

费尔马小定理素数java_利用费马小定理判断素数

今天听了ljss神犇的数论课&#xff0c;顿时感觉————我真的是太弱啦&#xff01;我只能稍微写一下我能听懂的部分orz那么这就是今天我为数不多能听懂一点的之一......QAQ首先先介绍今天的主角&#xff1a;费马小定理————转自维基百科没看懂的话我稍微解释一下&#xff0…

java aspectj_AspectJ基本用法

AOP虽然是方法论&#xff0c;但就好像OOP中的Java一样&#xff0c;一些先行者也开发了一套语言来支持AOP。目前用得比较火的就是AspectJ了&#xff0c;它是一种几乎和Java完全一样的语言&#xff0c;而且完全兼容Java(AspectJ应该就是一种扩展Java&#xff0c;但它不是像Groovy…

php json to object,PHP JSON_FORCE_OBJECT函数实现强转对象

JSON_FORCE_OBJECT在多级数组中&#xff0c;JSON_FORCE_OBJECT会将所有嵌套数值数组编码为对象。如果你只关注第一级数组(例如&#xff0c;使其适合作为MySQL JSON列)&#xff0c;那么可以将第一级数组强制转换为对象&#xff0c;例如&#xff1a;$ json json_encode((object)…

php推送示例wordpress,给WordPress的编辑后台添加提示框的代码实例分享

WordPress 3.5 新添加了一个提示框功能&#xff0c;可以创建一个提示框&#xff0c;然后指向任何元素&#xff0c;比如下边的例子&#xff1a;本文就来教你怎么创建一个这样的提示框。首先需要添加提示框的脚本&#xff0c;这样才能使用提示框的 JS 方法。//挂载提示框脚本func…

jmeter php网站,jmeter实战之phpwind随机回帖/发帖

关键词&#xff1a;jmeter phpwind 性能测试一、性能需求1)性能需求&#xff1a;30min内&#xff0c;phpwind随机回帖/发帖&#xff0c;观察服务器性能的表现。2)需求分析&#xff1a;2.1 核心业务论坛系统的核心业务主要是登录、看帖、发帖、回帖&#xff0c;业务建模时应考虑…

php7改进,关注一下:PHP 7.3.7 正式发布 改进、修复的地方不少哦

PHP 7.3.7正式发布了。PHP(PHP&#xff1a;Hypertext Preprocessor)是一种在电脑上执行的脚本语言&#xff0c;主要是用途在于处理动态网页&#xff0c;也包含了命令列执行接口(command line interface)&#xff0c;或者产生图形使用者接口(GUI)程式。版本主要还是修复 bug&…

php jwt token刷新方案,laravel JWT自动刷新 自定义验证器

在前面的文章中&#xff0c;我们引入了JWT的验证方式&#xff0c;但是在前面并没有做过多的处理&#xff0c;只是用JWT生成了一个token&#xff0c;那么今天来就解决后续问题为了保证用户信息的安全&#xff0c; 我们的生成的JWT不可能一直有效&#xff0c;我们在配置文件里边配…

2019java形势,2019Java开发还有哪些发展

相信已经有不少人在心里考虑着春节之后转行新工作了吧&#xff0c;而在众多行业中IT行业&#xff0c;特别是Java开发、Java程序员等岗位相信是很多人的首选。谁让现在程序员薪资这么高呢&#xff0c;但是现在互联网发展迅速&#xff0c;各类编程语言层出不穷&#xff0c;比如py…

mysql允许两个用户远程连接,配置MySQL服务允许用户远程连接

默认情况下&#xff0c;mysql只允许本地登录&#xff0c;如果要开启远程连接&#xff0c;则需要修改/etc/mysql/my.conf文件。一、修改/etc/mysql/my.conf找到bind-address 127.0.0.1这一行改为bind-address 0.0.0.0即可二、为需要远程登录的用户赋予权限1、新建用户远程连接…

php流程控制的类型有哪些,流程控制包括哪些内容

流程控制也称为控制流程&#xff0c;是计算机运算领域的用语&#xff0c;其内容包括在程序运行时&#xff0c;个别的指令或是陈述、子程序运行或求值的顺序&#xff0c;不论是在声明式编程语言或是函数编程语言中&#xff0c;都有类似的概念。控制流程(也称为流程控制)是计算机…