程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> Mysql常用命令(2)

Mysql常用命令(2)

編輯:MYSQL入門知識
--------數據庫
-- 連接數據庫
-- help or \h 查看幫助信息
-- \c 清除當前輸入的語句
mysql -hhostname -uroot -p
******

-- 修改root密碼
set password = password('123456');

-- 查看一下數據庫服務器上有哪些數據庫
SHOW DATABASES;

-- 刪除數據庫 必須確定再確定此庫已經沒有任何需要了。
DROP DATABASE IF EXISTS `s32`;

-- 創建數據庫
CREATE DATABASE IF NOT EXISTS `s32`;

-- 選擇數據庫
USE `s32`;

--------------------- CREATE建表語句------------------------------
 --CREATE建表語句
CREATE TABLE IF NOT EXISTS `user`(
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) UNIQUE,
    password CHAR(32) NOT NULL,
    sex TINYINT NOT NULL DEFAULT 1,
    age TINYINT NOT NULL DEFAULT 0,
    province VARCHAR(255) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

-- 表引擎
MyISAM  存取速度快      不支持事務   表鎖機制   不支持外鍵
InnoDB  存取速度稍慢    支持事務     行鎖機制   支持外鍵

-- unsigned 無符號
-- zerofill 前導零 設置了此屬性之後,會自動加上unsigned
-- auto_increment 自增
-- not null 不能用null來作為值
-- default  設置默認值
-- 查詢數據

-- 增insert into 刪delete 改update 查select

insert into tabname (字段列表) values(值列表);

delete from tabname where 表達式;

update tabname set 字段=值,字段=值,字段=值 where 表達式;

select 字段列表 from tabname [where 表達式]; 



---------------------ALTER TABLE修改表----------------------------------------
-- 修改表名
ALTER TABLE `舊表名` RENAME [AS] `新表名`;
alter table `user` rename `s32_user`;

-- 修改字段數據類型或字段屬性
ALTER TABLE `表名` MODIFY `字段名` 字段屬性...
alter table `user` modify `sex` int not null default 1;

-- 修改字段數據類型或字段屬性及修改字段名 change
-- 改名
alter table `user` change `sex` `xingbie`  TINYINT NOT NULL DEFAULT 1;
alter table `user` change `xingbie` `sex`  TINYINT NOT NULL DEFAULT 1;
-- 修改字段屬性
alter table `user` change `sex` `sex` INT NOT NULL DEFAULT 1;
-- 增加字段 add

-- 添加一個密碼字段
alter table `user` add `password` char(32) not null after `name`;
添加訂單狀態字段
alter table `dds_order_goods` add `state` varchar(255) default '未付款';
-- 添加一個test字段
alter table `user` add `test` text;
-- 刪除test字段
alter table `user` drop `test`;
-- 改變字段位置 FIRST 第一 AFTER 在......後面
alter table `user` modify `password ` char(32) not null first;
alter table `user` modify `password` char(32) not null after `name`;

--------------------------UPDATE修改數據--------------------------------------------
-- 修改和刪除是危險動作,一定要加上刪除哪些記錄:一定要加上where條件
-- 修改數據

update tabname set 字段=值,字段=值,字段=值 where 表達式;
UPDATE `user` SET `name`='桐桐',`sex`='1' where `id`='6'; 

---------------------------------select查詢表----------------------------------------

-- 查詢表中所有字段
mysql> select * from user;

-- 查詢指定字段
select name from user;

-- 查詢指定記錄
select id,name,password,sex,age,province from user where id='1';

-- 表達式中的where條件子句的方式有:
-- > < >= != 
-- 查詢id大於7的記錄

select id,name,password,sex,age,province from user where id>'7';

-- 查詢id小於7的記錄
select id,name,password,sex,age,province from user where id<'7';

select id,name,password,sex,age,province from user where id>='7';
select id,name,password,sex,age,province from user where id<='7';

-- BETWEEN AND 進行范圍比較查詢
-- NOT BETWEEN AND
select id,name,password,sex,age,province from user where `id` between '2' and '10';
select id,name,password,sex,age,province from user where `id` not between '2' and '10';

-- IN
-- NOT IN進行范圍比對查詢
select id,name,password,sex,age,province from user where `id` IN ('2','5','8','100','22','7','10');

-- 使用LIKE進行模糊查詢
-- _ 代表一個字符
-- % 代表任意多個字符
select id,name,password,sex,age,province from user where `name` like '莫_';
select id,name,password,sex,age,province from user where `name` like '莫__';
select id,name,password,sex,age,province from user where `name` like '莫%';

-- 查詢出所有王姓朋友
select id,name,password,sex,age,province from user where `name` like '王%';

-- 查詢名字中還王的朋友
select id,name,password,sex,age,province from user where `name` like '%王%';
select id,name,password,sex,age,province from user where `name` like '%王';

-- 使用ORDER BY 對查詢結果排序
-- order by `字段名`
-- desc 降序
-- asc  升序 默認
select id,name,password,sex,age,province from user order by `id` desc;

-- 先按年齡大小排序 降序,再按id排序 升序
select id,name,password,sex,age,province from user order by `age` desc, `id` asc;

-- 限制查詢結果的數量 (行數)
-- limit $offset,$num
select * from user limit 0,5;
select * from user limit 5,5;
select * from user limit 10,5;
select * from user limit 15,5;

-- 將所有的年齡全部查詢出來
select age from user;
-- 查詢結果不重復 distinct
-- 注意:所有字段的內容必須全部一致,才會被去掉
select distinct age from user order by age;

-- group by 分組查詢
-- 單獨使用group by 沒有什麼用, 一定要配合下面的集合函數一起使用才有意義

-- 集合函數 count()記錄數  avg()平均數  max()大 min()小 sum()和
    select count(*) from user;
    select avg(age) from user;
    select max(age) from user;
    select min(age) from user;
    select sum(age) from user;


    select * from user group by province;

-- 計算一下各個省份分別有多少人
    select province,count(*) from user group by province order by count(*) desc;
-- 計算一下各省分的用戶的平均年齡
    select province,avg(age) from user group by province;

-- having 是在group by 的基礎上再進行過濾
-- 把人數大於3個的省份給我查詢出來
    select province,count(*) from user group by province having count(*)>3;
    

-- distinct-- 查詢結果不重復 distinct
-- 注意:所有字段的內容必須全部一致,才會被去掉
    select distinct sex from user;
-- concat() 拼接
select concat(`id`,',',`name`,',',`sex`) from user;

-- 給字段或表名取別名 as
select user.id,user.name,user.sex,user.age,province from user; 

select u.id,u.name,u.sex,u.age,u.province from user as u; 

-- 給字段取別名 
select u.id i,u.name n,u.sex s,u.age a,u.province p from user as u; 


-- 兩個表關聯查詢一下
-- 查詢用戶表的的用戶分別有哪些情人
select u.id, u.name, m.name
from user u, mistress m
where u.id=m.user_id;

select u.id, u.name, m.name
from user u, mistress m
where u.id=m.user_id and u.id=3;

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved