一:数据库的初始话操作

mysql -u root -p    //数据库的登陆

show databases;    //展现数据哭中存储的所有文件

use 数据库名;        //进入当前要错做的数据库中

creat database 数据库名;    //创建一个新的数据库文件

drop database 数据库名;    //删除已经存在数据库文件

二:数据库的表操作

//为当前选定的数据库创建一个表

 create table t_user(

 id int,

 name varchar(20),

 sal double(5,3),

 birthday datetime,

 hiredata timestamp

 );

 

 show tables;//查看所有表名

 desc 表名;    //查看表名中存放的数据

 drop table 表名;//删除选择的表

 alter table 表名 add 列名 类型;//给选定的表增加一行新的信息

 alter table t_user add newname varchar(20);

 

 alter table 表名 modify 列名 类型;//将原有的列类型进行修改

 alter table t_user modify newname photh;

 

 alter table 表名 change 旧的列名 新的列名 数据类型;//将列名更改

 alter table t_user change  newname image varchar(20);

alter table 表名 drop 列名;

 alter table t_user drop image;

 

 rename table 旧表名 to 新表名;

 rename table t_user to t_empoyee;

 

 三:列的约束

         保证数据的完整性

         1、非空约束    not null 指定非空约素的列,再插入记录时,必须包含值。

         2、唯一约束 unique        该列的内容在表中,值是唯一的

         3、主键约束    primary key

                                                     当想要吧某一列的值,作为该列的唯一标识符,可以指定主键约素。

                                                     注意:一张表中只能有一个主键约素

 

 四:对表中的数据进行增删改查

         1、为表添加数据

             insert into 表名[(列名1,列名2)] values (值1,值2);

             

             insert into t_user(name,email) values('tom','tom@163.com');

             insert into t_user valuse ('神殇','1179672922');

         

         修改存储编码:

                 set character_set_client=gbk;

         修改结束数据

                 set character_set_results=gbk;

         

         2、修改表中存储的数据

            update 表名 set 列名='新的数据',列名='新的数据' while 条件

             update 表名 set name='新的数据' while id=3;

                     上面的翻译:当数据库中某项内容的id 为3的时候将这一项中的name存储的信息修改为‘新的数据’

             多项那内容修改:

                 update employee set salary=4000,job='sss' while name='zs';

             对未知属性修改

                 update employee set salary=salary+1000,job='ddd' while name='ww';

                 

        3、删除表记录

            delete from 表名 while 条件

            delete from emeployee while name='rose';//删除指定的表数据

            delete from employee;    //删除表中的所有数据-->注意这种删除不是在文件中完全删除,可以进行恢复

            实例:

                delete from employee while name="ww";

            删除整张表的数据:

                truncate table employee;    //-->注意这种删除是从硬盘上将表数据完全删除掉,不可恢复

。;        

        4、DQL语句(DML) 查询语句 --> 重点

            语法:

                select selection_list     要查询的列名称

                from table_list     要查询的表名称

                while condition        行条件

                group by grouping_columns     对结果分组

                having condition     分组后的行条件

                order by sorting_colums        对结果排序

                limit offset_start, row_count        结果限定

                

            自己使用实例:

                1、select * from 表名        // 查询表中的所有数据

                     select 列名,... from 表名//查询表中某一列或多列的数据

                条件查询:

                    条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:

                    ?    =、!=、<>、<、<=、>、>=;

                    ?    BETWEEN…AND;

                    ?    IN(SET)/NOT IN(SET)    //set表示集合,代表多种条件的判断的集合

                    ?    IS NULL/IS NOT NULL

                    //---条件连接符

                    ?    AND; &&

                    ?    OR;  ||

                    ?    NOT; !

            例子:查询性别为女,并且年龄小于50的记录

                select * from stu where gender='female'  and age<50;

                

                模糊查找

                    where 字段 like '表达式';

                    % => 通配 通配任意个字符(指的是任意长度的任意一段字符)

                    _ => 通配 通配单个字符    (值得是一个长度的任意一个字符)

                    说明:like 条件后 根据模糊查询表达式,"_"==>代表一个任意字符

                

                排序

                    关键词:order by

                    升序:asc

                    降序:desc

                    语法:列名 order by 升降序

                    

                    

    limit mysql专属语言

        limit用于限定查询结果的起始行,以及总行数

        例子:

            查询5行记录,从0行开始

            select    * from emp limit 0,5;

            

            查询10行记录,从3行考试

            select * from emp limit 3,10;

            

            如果一页记录为5条,希望查看第3页记录:

                select * from limit 10,5;

                

                3.1查询姓名由5个字母构成的学生记录

    

    SELECT * FROM stu WHERE sname LIKE "_____";

3.2查询姓名由5个字母构成,并且第5个字母为“i”的学生记录

SELECT * FROM stu WHERE sname LIKE "____i";

3.3 查询姓名以“z”开头的学生记录

说明: "%"该通配符匹配任意长度的字符.

    SELECT * FROM stu WHERE sname LIKE "z%";

3.4查询姓名中第2个字母为“i”的学生记录

    SELECT * FROM stu WHERE sname LIKE "_i%";

3.5 查询姓名中包含“a”字母的学生记录

    SELECT * FROM stu WHERE sname LIKE "%a%";

4.1  去重重复记录

    SELECT DISTINCT gender FROM stu;

    

4.2  查看雇员的月薪与佣金之和

    SELECT ename,sal+comm FROM emp;

    SELECT ename,sal+IFNULL(comm,0) AS "月收入" FROM emp;

    

4.3  给列名添加别名

    SELECT ename "姓名",sal+IFNULL(comm,0) "月收入" FROM em

    SELECT ename AS "姓名",sal+IFNULL(comm,0) AS "月收入" FROM emp;

    

5.1  查询所有学生记录,按年龄升序排序

    SELECT * FROM stu  ORDER BY age ASC;

5.2  查询所有学生记录,按照年龄降序排序    

    SELECT * FROM stu  ORDER BY age DESC;

    

5.3  查询所有雇员,按月薪降序排序,如果月薪相同时,按编号升序排序

    SELECT * FROM emp ORDER BY sal DESC , empno ASC;

SHOW DATABASES;

USE SECOND;

SHOW TABLES;

DESC emp;

SELECT * FROM emp;

6.1  COUNT

当需要总想统计时可以使用count().

    1>查询emp表中记录数:

        SELECT COUNT(*) FROM emp;

    

    2>查询emp表中有佣金的人数:

        SELECT COUNT(*)"数量" FROM emp WHERE comm IS NOT NULL AND comm>0;

    

    3>查询emp表中月薪大于2500的人数:

    

        SELECT COUNT(*)"人数" FROM emp WHERE sal>2500;

    4>统计月薪与佣金纸盒大于2500的人数:

        SELECT COUNT(*)"人数" FROM emp WHERE sal+IFNULL(comm,0) >2500;

        

    5>查询有佣金的人数并且有领导的人数:

        SELECT COUNT(*) FROM emp WHERE comm IS NOT NULL AND comm!=0 AND mgr IS NOT NULL;

        

6.2  SUM(计算总和)和 AVG(计算平均值)

当需要纵向求和使用 SUM()函数

    1>查询所有雇员月薪和:

        SELECT SUM(sal)"月薪和" FROM emp;

    2>查询所有雇员月薪和,以及所有雇员佣金和:

        SELECT SUM(sal),SUM(comm) FROM emp;

    3>查询所有雇员月薪+佣金和:

        SELECT SUM(sal)+SUM(comm)"总和" FROM emp;

    4>统计所有员工平均工资

        SELECT AVG(sal)平均工资 FROM emp;

        

6.3  MAX 和 MIN 

查询最高工资个最低工资

    SELECT MAX(sal),MIN(sal) FROM emp;

    

    

查询每个部门编号和每个部门的工资和

    SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;

    

查询每个部门的编号及每个部门的人数:

    SELECT deptno,COUNT(empno) FROM emp GROUP BY deptno;

    

查询每个部门的编号及每个部门工资大于1500的人数

    SELECT deptno,COUNT(sal>1500) FROM emp GROUP BY deptno;

    SELECT deptno,COUNT(empno) FROM emp WHERE sal>1500 GROUP BY deptno ;

    

查询工资总和大于9000的部门编号及工资总和

    SELECT deptno,SUM(sal) FROM emp GROUP BY deptno HAVING SUM(sal)>9000;

最初学习mysql的一些操作留存的更多相关文章

  1. Database学习 - mysql 数据库 表操作

    mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...

  2. 学习MySQL之数据库操作(一)

    所有代码,均为自学时用到的测试与注释,知识细节或知识点不会面面俱到,亦不会有任何讲解,只做为自己学习复习用. ##数据库操作 ##创建数据库 myTest ,并将数据库字符集设为GBK CREATE ...

  3. Database学习 - mysql 数据库 数据操作

    mysql数据操作 查询语法 select * | field1,field1 ... from 表名 where 条件 group by 字段 having 筛选 order by 字段 limit ...

  4. Database学习 - mysql 连接数据库 库操作

    连接数据库 语法格式: mysql -h 服务器IP -P 端口号 -u用户名 -p密码 --prompt 命令提示符 --delimiter 指定分隔符 示例: mysql -h 127.0.0.1 ...

  5. Database学习 - mysql 数据库 事务操作

    事务 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 数据库开启事务命令: start transaction   开启事务 rollback  回滚事务,即撤销指定的 ...

  6. mysql之字符串操作

    写在前面 上篇文章学习了mysql常用的日期操作的函数,这篇文章将学习mysql的字符串操作的函数. 系列文章 mysql之创建数据库,创建数据表 mysql之select,insert,delete ...

  7. MySql学习 (一) —— 基本数据库操作语句、三大列类型

    注:该MySql系列博客仅为个人学习笔记. 在使用MySql的时候,基本都是用图形化工具,如navicat.最近发现连最基本的创建表的语法都快忘了... 所以,想要重新系统性的学习下MySql,为后面 ...

  8. MySQL学习(一): MySQL的初步操作与命令

    启动与关闭: 用管理员身份运行cmd 启动:net start mysql57 其中mysql57是我的MySQL名称,版本不同名称可能不一样 关闭:net stop mysql57 与上面同理 登录 ...

  9. 烂泥:学习mysql数据库主从同步复制原理

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 说明本篇文章部分转载自互联网. MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对 ...

随机推荐

  1. HTML练习一

    效果图 动态图 html代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  2. vue中非父子组件的传值bus的使用

    非父子之间的组件传值,可以使用vuex.简单的状态管理,也可以用vue bus vue bus可以实现不同组件间.不同页面间的通信,比如我在A页面出发点击事件,要B页面发生变化,使用方法如下: 全局定 ...

  3. Javascript绑定事件的两种方式的区别

    命名函数 <input type="button" onclick="check()" id="btn"/> <scrip ...

  4. ReactNative 踩坑笔记

    1.fatal error: 'React/RCTBridgeDelegate.h' file not found 这个问题是应为没有安装cocoaPods 所以无法安装ios需要的第三方库.安装co ...

  5. LCD1602 液晶

    它是一种专门用来显示字母.数字.符号的点阵型液晶模块 它是由若干个5x7或者5x10的点阵字符位组成 引脚 时序 操作步骤 初始化 写命令(RS=L)设置显示坐标 写数据(RS=H) 指令 清屏: 指 ...

  6. 原创js脚本实现百度网盘任意文件强制下载

    代码: //get file list data var data=require("system-core:context/context.js").instanceForSys ...

  7. GitHub代码复现之opencv

    GitHub代码复现之opencv链接:https://github.com/vonzhou/opencv 待解决!!! ISSUE汇总: Issue1:vs2015找不到配置dirent.h头文件? ...

  8. Windows7用VirtualBox虚拟Ubuntu共享文件夹的终极方式

    在Win7用VirtualBox虚拟机安装Ubuntu后,共享文件夹再也不用手工mount了 安装增强工具包 设置共享文件夹后 VB已经自动挂载Windows文件夹到 /media/sf_*** 目录 ...

  9. 基于C++11的100行实现简单线程池

    基于C++11的100行实现简单线程池 1 线程池原理 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务.线程池线程都是后台线程.每个线程都使用默认的堆栈大小, ...

  10. ServiceLoader在SPI中的重要作用分析

    对于线程上下文类加载器在之前已经对它进行了详细的理论化的学习,其中对于这个类加载器应用最多的也就是在SPI场合下用来打破双亲委托机制,如之前所描述的: 这次举一个具体的例子来进一步的加深对线程上下文类 ...