MYSQL常见命令

1、创建表格时添加: create table tablename(id int auto_increment primary key,...) 

2、创建表格后添加: alter table tablename add id int auto_increment primary key

3、设置主键:alter table tablename add primary key(field_name);

4、重命名表: alter table table_old_name rename table_new_name;

5、改变字段的类型:alter table tableName modify field_name field_type;

6、重命名字段:alter table tableName change old_field_name new_field_name new_field_type;

7、删除字段:alter table tableName drop column field_name;

8、增加一个新字段:alter table tableName add new_field_name field_type;   

                                  alter table tableName add new_field_name field_type not null default '0';

9、新增一个字段,默认值为0,非空,自动增长,主键:alter table tabelname add new_field_name field_type default 0 not null   auto_increment ,add primary key (new_field_name);   

创建一个表

create table pre_common_usernotes (id int(8) not null primary key auto_increment, user_id char(20) not null, order_id char(20) not null, pub_id char(20) not null, ad_name char(20) , ad_id int(8), device char(20) , system_name char(20), channel int(8), price double(16,2), point int(8), ts int(10) not null default'0', sign char(30));

创建数据库并设置数据库默认字段编码格式

create database database_name default charset utf8 collate utf8_unicode_ci;

设置 auto_increment字段 的最小值

ALETER TABLE table_name AUTO_INCREMENT=100000

打开指定的库

use 库名

查看其他库的所有表

show tables from 库名

创建表

creat table 表名(列名,列类型)

查看表结构

dsc 表名;

查看服务器的版本

1.登录到mysql服务端

select version ();

2.没有登录到服务端

mysql--version或mysql--v

语法规范:

每条命令以;结尾或者/g结尾

每条命令根据需要可以进行缩进或换行

单行注释#注释   -- 注释

多行注释/*注释*/

select  查询列表 from 表名;--选择、过滤、查看

类似于Java中system out println(打印东西);

查询列表可以是常量值、表中的字段、表达式、函数

查询表中所有字段,1. select 双击 from 表名,选中内容点击F12改变格式

                                  2.selsct * from 表名;(只能个按照顺序显示)

查询时,先使用命令use 库名打开库

mysql中的+只做运算符,select 字符+数值:先试图将字符转换为数值,若转换成功,则继续运算,否则转换成0

起别名:1.便于理解( 用AS或空格)

                2.如果查询的字段有重名的情况,便于区分

去重:select distinct 查询事务 from 表名

concat连接字符串  如select concat(‘a’,‘b’,‘c’)

显示表的结构:desc 表名;

条件查询:

select 查询列表

 from 表名 

where 筛选条件

逻辑运算符:用于连接条件表达式

&&和and:两个都为true则为true,反之有一个为false则为false

||和or:只要有一个为true(出现),则为true,反之为false

!和not:如果连接的结果本身为false,结果为true

模糊查询:查询员工名中包含a的员工信息

select * from employees where lastname like ‘%a%’;

like的特点:一般和通配符搭配使用

                       通配符:%任意多个字符,包含零个字符

                        —:任意单个字符

例:查询员工名中第二个字符为_的员工名

selelct lastname

from employees 

where lastname  like '_b_%' escape 'b';#b为转义符\

is null:仅仅可以判断null值

<=>:安全等于,既可以判断null值,又可以判断普通数值

例如:查询员工号为176的员工的姓名,部门号和年薪

select   lastname

             department

             salary*12*(1+ifnull(commissin_pact,0))

from 

              employees;

mysql中<>为不等于

MYSQL服务的启动和停止:

方式一:启动:net start 服务名   #启动命令行

             #停止:net stop 服务名

方式二:计算机—右击—管理—服务

登录:mysql _h主机名 _p端口号 _u用户名_P密码  #如果连接本机且端口号是3306可省略_h和_p,_P和密码之间不能有空格

退出:exit或Ctrl+c

#查询时,字符型和日期型的常量必须用单引号引起来,数值型不需要

if null:判断某字段或表达式是否为null,如果为null,返回指定的值,如果不为null,返回原本的值

例:select ifnull (commission_pact,0)from employees;

isnull:判断某字段或表达式是否为null,如果是则返回1,否则返回0

字符函数:

1.length函数:

trim:去掉空格

select lpad(‘张三峰’,10,‘*’)as output

数学函数:

1.round函数:四舍五入

例如:select round(-1.55) 结果为-2,先对绝对值四舍五入,再加上正负号

            select round(1.567,2)结果为1.57,保留两位小数

2.ceil函数:向上取整

例如:select ceil(1.002)结果为2#返回>=该参数的最小整数

          select ceil(-1.02)结果为-1

3.floor函数:向下取整,返回<=该参数的最大整数

例如:select floor(-9.99)结果为-10

4.truncate截断函数:

例如:select truncate(1.69,1);结果为1.6

5.mode函数:取余函数

mode(a,b):a-a/b*b

例如:select mode(10,-3)#被除数为正数,则结果为正数

6.rand函数:获取随机数,返回0-1之间的小数

日期函数:

1.now函数:返回当前系统的日期加时间

select now();

2.curdate函数:返回当前系统的日期,不包含时间

curtime:返回当前的时间,不包含系统日期

获取指定的部分:select year(now())年;

                              select monthname(now());月

3.str_to_date函数:将字符通过指定的格式转换成日期

例如:select str_to_date('1998-3-2','%Y-%C-%D)AS output;

4.date_format函数:将日期转换成字符

例如:select date_format(now(),'%y年m月%d日‘)as output;

5.datediff:返回两个日期相差的天数

6.monthname:英文形式返回月

:分组函数:用于统计,又叫聚合函数

1.sum:求和   avg:平均  count:计算个数

2.参数支持哪些类型

                sum,avg适用于处理数值型

               max,min,count适用于处理数值型和字符型即任何类型,一般使用count(*)统计行数

3.null是否参与运算:分组函数都忽略null值

 4.和distinct搭配实现去重运算,如select sum(distinct 字段)from表名;

#和分组函数一起查询的字段有限制

分组查询:select 分组函数,列(要求出现在group by的后面)#分组后的字段 #5

                   from 表  #1

                   where 筛选条件 #2

                   group by 分组的列表 #3

                  having 分组后的筛选  #4

                     order by 字句  #6

例1:查询每个位置上的部门个数

select count(*),loaction_id

from 表名

group bylocation_id;

例2:查询邮箱中包含a字符的,每个部门的平均工资

select avg(salary),department——id

 where email like '%a%'

group by department_id;

例3:查询哪个部门的员工个数>2

select count(*),department  from employees

order by department_id

having count (*)>2;  #having实现分组后的筛选

HAVING举例:

                       

特点 :分组筛选:分组前筛选:处理原始表

                              分组后筛选:处理分组后的数据集

分组函数做条件肯定是放在having子句后面

例:

笛卡尔积:

#提高语句的简洁度 

例:查询员工表的job_id中包含a和e的,并且a在e的前面

select job_id from employees where job_id like '%a&e%';

其他函数:password(‘字符’)返回该字符的密码

流程控制函数:

内连接:select  查询列表

            from 表1,别名

           inner join表二,别名

交叉连接:cross join

               on  连接条件

分类:等值连接

多行子查询:

          非等值连接

          内连接

子查询: 

联合查询:

        union:将多条查询语句的结果合并成一个结果   

       查询语句1

        union

        查询语句2

插入数据:insert into 表名

                select 语句1 union

                 select 语句2 union

修改字段名:update 表名 set 旧字段名=新字段名 where条件

清空表:truncate table 表名

修改表或者数据库的结构:alter

删除表或数据库:drop

库的修改:rename database 库名 to 新库名

更改库的字符集:alter datebase 库名 character set gbk;

修改列名:alter table 表名 change column 旧列名 新列名 类型;

修改列的类型或约束:alter table 表名 modify column 列名 类型

添加新列:alter table 表名 add column annual 新列

MySQL中六大约束:

not null:非空,用于保障该字段的值不能为空,比如姓名,学号等

default:默认,用于保证该字段有默认值,如性别

primary key:主键,用于保障该字段的值具有唯一性,并且非空,如学号,员工标号

union:唯一,用于保证该字段的值具有唯一性,可以为空,比如座位号,

check:检查约束,MySQL中不支持,比如年龄,性别

foreign key:外键,用于限制两个表的关系,用于保证该字段的值必须来自主表的关联列的值,在从表添加外键约束,用于引用主表中某列的值,如专业编号,员工表的部门编号,工种编号

添加约束的时机:

                        1.创建表时

                        2.修改表时

约束的添加分类:

                        1.列级约束:六大约束语法上都支持,但外键约束没有效果

                        2.表级约束:除了非空,默认,其他的都支持

使用数据库建立应用系统:

数据库的应用系统(C/S,B/S)开发:

         集中式数据库系统:

                        缺点:数据集中处理造成通信开销大:

                                   过分依赖主机造成系统可靠性低

                                    系统的可扩充性也较差

C/S结构:包含一个服务器与多个客户机,他们之间由网络相连并通过接口进行交互,C端限制比较多,需开发客户端

  特点:为了完成一个特定的任务,客户机上的程序可以和服务器上的程序协同工作,使系统的效率达到最高

客户端:代码一般用于完成用户的输入输出及数据的检查

服务端:代码完成对数据库的操作

三层C/S结构:客户机/应用服务器(处理特定的业务组件)/数据库服务器

应用服务器:接受应用程序发出的请求      

1.客户机(表示层):主要提供客户的操作界面,不做或只做很少的计算功能,只运行向应用程序  服务器请求服务的代码,并显示其结果

2.应用服务器型:包含了应用系统中完成业务处理的代码,负责接收和处理对数据库的查询和操纵请求,这些代码是封装起来的,彼此独立的,将这些代码称为中间件或商业规则的组件

3.数据库层:安装在数据库服务器中,用于存放和管理用户数据,支持对数据的各种操作

三层结构优势:加入了应用服务器(包含业务处理代码),使的客户机和服务器都减轻了负担

结构优点:

1.由于业务处理代码都放在应用服务器端,一旦应用需求改变,只需要对应用服务器端进行升级即可,方便了系统的维护和升级

2.应用服务器同数据库服务器总是位于同一地点或同一局域网中,大量数据的频繁传送不会影响系统的整体性能

B/S:客户端浏览器运行html语言(格式化语言,只负责显示结构),php语言(动态语言)与后台数据库交互,css是描述html样式的语言,js运行在浏览器,显示一些动态的效果

交互式编码:给服务器提交

客户端程序只提供用户操作界面,应用软件只需安装在一台服务器(web服务器)上,数据库服务器端用于存放和管理数据

  优势:最终应用软件的安装和维护都非常简单,客户端不在需要安装配置应用软件的工作

C/S与B/S的比较:

数据访问接口是应用程序访问数据库的通道,一般数据库管理系统支持两种两种数据访问接口:专用接口和通用接口

专用接口:与特定的数据库管理系统有关,不同的DBMS提供的专用接口不同,使用方法不同

通用接口:提供一种标准的访问方法,编程人员可以方便访问不同的数据库管理系统 。ODBC(开放数据库互联):微软公司开发的一套开放的数据库系统应用程序接口规范,提供了一组对数据库访问的标准API

                    体系:客户端应用程序

JDBC:由sun公司开发,能通过Java语言访问任何关系数据库的应用程序接口(API)

优势:扩充了java的应用范围,java应用程序通过JBDC API,可以向任何相应的数据库发送SQL语句,和java的结合使程序员可以只写一次应用软件便能在各种平台(操作系统,数据库系统等)上

OLE DB:是一系列直接处理数据的底层数据接口,可在不同数据进程间进行通信,使用OLE DB可以从任意类型计算机上的人已应用程序中访问任意类型的数据

ADO:是建筑在OLE DB之上的高层接口集,介于OLE DB底层接口和应用程序之间,提供的是一个对象模型,是面向对象的API

操作:使用数据库建立应用系统

‘&’运算符两边的操作数可以是字符型或者是数字型

‘+’运算符两边的操作数应均为字符型

程序的流程控制:

                1.顺序结构

                2.选择结构

                3.循环结构

函数控制输出格式:

                1.spc(n):用来在输出中插入空格符,n为要插入的空格数

                2.tab(n):用来将插入点定位在绝对列号上,n为列号

多分支选择语句:select case<测试表达式>

                               case<表达式表1>

                                [<语句组1>]

                               [ case else

                                [<语句组n+1>]]

                                end select

visual Basic提供的循环语句有:

                Do...Loop循环语句,For...Next循环语句

格式:for <循环变量>=<初值>to<终值>

          [step<步长>]#可选项,默认为1

                               < 语句组1>

                                [exit for]

                                   <语句组2>

        next [<循环变量>]

VB过程:

   采用事件过程;通用过程

VB采用事件驱动的工作方式,事件过程是指在响应窗体和控件的事件时执行,能够完成某向特定功能的代码段

通用过程:实现某项独立功能的代码段

过程:function过程     function

                                        ...

                                        end function

格式:[private|public] [static]

          function <函数名>([<形参表>])

      sub 过程:

调用格式:call<过程名>[(<实参表>)]

格式二:<过程名>[<实参表>]

登录问题:隐藏关键url/扫描url碰撞出来

cookie:存放在本地,是一小块登录信息,明码容易泄密,服务器从cookie获取信息

session:可以用cookie,服务器创建一个数字值(session-id),存放到服务器——>发送到客户端(写到cookie或坠入url)

视图:

视图是从一个或多个表中导出的,视图的行为与表非常相似,是一个虚拟表

 

简化操作,安全,逻辑性

没有像素损失

创建视图:create view view_goods as select goods_names,goods_price from goods;

完成后运行:select * from view_goods

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值