当前位置:Gxlcms > 数据库问题 > 数据库

数据库

时间:2021-07-01 10:21:17 帮助过:16人阅读

/关闭: 方式1: 我的电脑-----> (右键)管理---->服务和应用程序---->服务----找到MySQL服务右键启动或关闭 方式2: 进入dos窗口 使用命令: net start mysql 开启MySQL服务; 命令:net stop mysql 关闭MySql服务 登陆MySQL: 格式1:cmd> mysql –u用户名 –p密码 例如:mysql -uroot –proot 格式2:cmd> mysql --host=ip地址 --user=用户名 --password=密码 例如:mysql --host=127.0.0.1 --user=root --password=root SQL分类: 数据定义语言:DDL,用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等 ? 数据操作语言:DML,用来对数据库中表的记录进行更新。关键字:insert,delete,update等 ? 数据控制语言:DCL,用来定义数据库的访问权限和安全级别,及创建用户。 ? 数据查询语言:DQL,用来查询数据库中表的记录。关键字:select,from,where等 语法:不分大小写 分号结尾 数据类型:int:整型 double:浮点型 varchar 字符串型 date 日期类型(yyyy-MM-dd)只有年月日 数据库操作: 创建数据库: create database 数据库名; create database 数据库名 character set 字符集; 查看数据库: 查看所有:show databases; 查看某一个:show create database 数据库名; 删除数据库: drop database 数据库名称; 切换数据库: use 数据库名; 查看正在使用的数据库: select database(); 数据表操作: 创建表: create table 表名( 字段名 类型(长度) 约束, 字段名 类型(长度) 约束 ); 主键约束: 1.在创建表时创建主键,在字段后面加 create table tablename( id int primary key, ....... ) 2. 在创建表时创建主键,在表创建的最后来指定主键 create table tablename( id int, ......., primary key(id) ) 删除主键: alter table 表名 drop primary key; 主键自动增长:主键字段后加auto_increment(只适用MySQL) 查看表: 查看所有:show tables; 查看表结构:desc 表名; 删除表: drop table 表名; 修改表结构:altrt table 表名 添加列:? alter table 表名 add 列名 类型(长度) 约束; 修改列的类型长度及约束:?alter table 表名 modify 列名 类型(长度) 约束; 修改列名:? alter table 表名 change 旧列名 新列名 类型(长度) 约束; 删除列:? alter table 表名 drop 列名; 修改表名 rename table 表名 to 新表名; 修改表的字符集:?alter table 表名 character set 字符集; 添加数据:insert into 表名 常规:insert insert into 表名(列名1,列名2,列名3)values(值1,值2,值3) (可忽略主键) 简写:insert into 表 values (值1,值2,值3..); --向表中插入所有列 (不能忽略主键) 一次加多个:insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3);
INSERT INTO product (id,pname,price) VALUES (1,笔记本,5555.99);

 添加数据格式,不考虑主键
INSERT INTO product (pname,price) VALUES(洗衣机,800);

添加数据格式,所有值全给出
INSERT INTO product VALUES (4,微波炉,300.25);

 添加数据格式,批量写入
INSERT INTO product (pname,price) VALUES 
(智能机器人,25999.22),
(彩色电视,1250.36),
(沙发,5899.02)

 


        注意:    在values中列出的数据位置必须与被加入列的排列位置相对应。
                对于自动增长的列在操作时,直接插入null值即可
                除了数值类型外,其它的字段类型的值必须使用引号引起
    

    更新表记录:update 表名 set 
        update 表名 set 字段名=值,字段名=值;(全改,慎用!)
        update 表名 set 字段名=值,字段名=值 where 条件;

        如:UPDATE sort SET sname=‘日用品‘ WHERE sid=‘s002‘;
    
    条件查询where的写法:(用id举例子)
        id=6
        id<>6 id不等于6
        id<=6 
        id in(1,3,4,5,6) 包含在内的
        多个条件同时成立:and  
        多个条件任一成立:or 
        不成立:not
        between...and...  之间被修改(小值在前,含头尾)
        like :    % 用来匹配多个字符;例first_name like ‘a%’/‘%a’/‘%a%’;
            _ 用来匹配一个字符。例first_name like ‘a_’;(一个下划线代表一个字符,可用于查询几个字符)
        

    删除表:
        删具体某一条:
        delete from 表名 [where 条件];
        删整表:
        delete from 表名;
        truncate table 表名;

        删整表的区别:    
            delete 一条一条删除,不清空auto_increment记录数。
            truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。

    DOS乱码:
        查看所有mysql的编码: show variables like ‘character%‘; 
    
        一次性修改:set xxx=gbk;/set names gbk;

        永久修改:default-character-set=gbk 客户端编码设置
                character-set-server=utf8 服务器端编码设置    
               注意:修改完成配置文件,重启服务

查询语句:
        查询指定字段信息:select 列名1,列名2 from 表名;    
        查询所有字段:select * from 表名;
        去重查询:select distinct 字段 from 表名;
        查询重命名列:select 字段名 as 别名 from 表名;(临时改名,实质没改)
        查询中进行数学计算:select 列名1,列名2+1000 from 表名;
        
    排序查询:(先过滤条件,在排序)
        升序:order by 列名 [asc]  (升序可不写asc)
            【SELECT * FROM product ORDER BY stock;】
        降序:order by 列名 [desc]
            【SELECT * FROM product ORDER BY stock DESC;】
            
    聚合函数查询计算(竖列计算):
        count 求和 select count(列名) from 表名;
            SELECT COUNT(*) AS‘price‘ FROM product; //所有列和
            SELECT COUNT(price) FROM product;  //对price列求和
        sum 求和  select sum(列名)  from 表名;
            select sum(zmoney) from zhangwu where zname like ‘%收入%‘; //对所有金额列中的收入求和
        max/min 求最值 select max(列名)  from 表名; 
        avg(列名) 求均值  【不计null】
    
    分组查询:group by 列名          
                select sum(zmoney)
                as ‘getsum‘,zname from zhangwu 
                where zname like ‘%支出%‘ 
                group by getsum order by zname;
            
                SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件;
                
        having&where区别:
            ?    having是在分组后对数据进行过滤.
                where是在分组前对数据进行过滤
?                having后面可以使用分组函数(统计函数)
                where后面不可以使用分组函数。
            


        
    

 

数据库

标签:truncate   管理系统   max   统计   star   server   order   dcl   设置   

人气教程排行