mysql的基本使用

mysql基本使用:

登录MySQL
  mysql -h host -u user -p
 创建数据库和表
  CREATE DATABASEbookstore;
  USE bookstore;
  CRAETE TABLE books ( book_idINT, title VARCHAR (50), author VARCHAR(50) );
 以表格的形式查看创建的表内容
  DESCRIBE books;
 在创建好的表格当中进行数据修改
   ALTER TABLE books CHANGECOLUMN book_id book_id INT AUTO_INCREMENT PRIMARY KEY,CHANGE COLUMNautor author_id INT,ADD COLUMN genreENUM('novel','poetry','drama'),
   ADD COLUMN publisher_idINT,ADD COLUMN pub_year VARCHAR (4);
 显示数据库列表
  SHOW DATABASE;
 数据表列表
  SHOW TABLES;
 插入数据
   INSERT INTO authors(authors_last,author_first,country)VALUES('Greene','Graham','UnitedKingdom');
 查看标志码
  SELECT LAST_INSERT_ID();
  SELECT author_id FROMauthors;
 查看列表中的所有数据:
  SELECT * FROM books;
 查看指定列中的内容
  SELECT book_id, title,description FROM books where genre='novel';
 连接表和表之间的内容
  SELECT book_id, title,pub_year,CONCAT (author_first, '',author_last)AS author FROM books JOINauthors USING (author_id)WHERE author_last='Greene';
  SELECT book_id, title,pub_year,CONCAT (author_first, '',author_last)AS author FROM books JOINauthors ON (author_id = write_id)WHERE author_last='Greene';
 排序限制分组:orderby先对title进行排序,再按照pub_year进行排序,默认是升序,LIMIE限制行数(LIMIT20,10)代表从20行开始取数
  SELECT book_id, title,publisherFROM books JOIN authors USING (author_id)JOIN publishers USING(publisher_id)
  WHERE author_last='Greene'ANDgenre='play'ORDER BY title,pub_year LIMIT 20;
  SELECT book_id, title,publisherFROM books JOIN authors USING (author_id)WHERE author_last='Greene'GROUP BY title;
 分析和处理数据
  SELECT COUNT(*) FROM books JOINauthors USING (author_id) WHERE title = 'arm' AND author_last ='boyd' ;  #数目统计
  SELECT purchase_date AS'Purchase Date' FROM orders WHERE sale_id = '1250';   #打印日期
  SELECT CONCAT (MONTHNAME(purchase_date),'',DAYOFMONTH(purchase_date),',',YEAR(purchase_date))AS 'Purchase Date' FROM orders WHERE sale_id = '1250' ;#英语月份表示日期
  SELECTDATE_FORMAT(purchase_date, "%M %d,%Y")AS 'Purchase Date' FROMorders WHERE sale_id = '1250'p;
 修改数据
  UPDATE books SET pub_year ='1938' WHERE book_id = '2';(修改的值多项时中间用逗号隔开)
  ALTER TABLE books CHANGE COLUMNisbn isbn VARCHAR(20) UNIQUE;(设置成unique列,值是唯一的)
  REPLACE INTO books(title,author_id, isbn,genre,pub_year)VALUES('BRIGHTONROCK',1,'123456','NOVEL','1938'),('THE QUIETAmECIAN',1,'123456','NOVEL','1955');
 删除数据
  DELETE FROM books WHEREauthor_id = (SELECT authors.author_id FROM authors WHEREauthor_last = 'Rowling' AND author_first = 'j.k');
  DELETE FROM authors WHEREauthor_last='Rowling'AND author_first='j.k';
 设置变量
  SET @POTTER=(SELECT author_idFROM authors WHERE author_last = 'Rowling' AND author_first ='j.k');
  DELETE FROM books WHEREauthor_id = @POTTER;
  DELETE FROM authors WHEREauthor_id = @POTTER;
 查询数据
  SELECT book_id,title FROM booksWHERE author_id = 1 AND title LIKE '�C'OR author_id = 1 AND titleLIKE '�d';(在指定列中查找含有相关单词的图书信息)
  SELECT book_id,title,CONCAT(author_first,'',author_last) AS author FROM books JOIN authorsUSING (author_id)WHERE title LIKE '�F'AND title LIKE '�D';
  (按照相关文字进行查找)
 批量导入数据
  TITLE|AUTHORLAST|AUTHOR FIRST|DATE|
  LOAD DATA INFILE'/tmp/books.txt'REPLACE INTO TABLE authors FIELDS TERMINATED BY '|'LINES TERMINATED BY '\n' TEXT_FIELDS ( col1,col2,col3,col4 ) SETauthor_last =col2,
  author_first=col3 IGNORE col1,col4,1 LINES;
 命令行界面
  mysql--user='root' --password='dongtian' -e "SELECT vendor, telephoneFROM vendors
  WHERE state='LA'"bookstore
 合并两张表的相关内容
  INSERT INTO tab3 SELECT num,name,age FROM tab1WHERE num='2';
 授予用户全局级全部权限
  GRANT ALL PRIVILEGES ON *.* to'zhu'@'%'ID BY 'DONGTIAN';
 授予用户针对某一个数据库的全部权限
 GRANT ALL PRIVILEGES ON BOOKSTORE.* to 'root'@'%' identified by 'dongtian'
 (%代表所有主机)
 查看MySQL支持的编码
 show character set;
 查看MySQL当前使用的编码:
 show variables like 'character_set%'
 show variables like 'collation%'
 通过命令修改一个数据库的编码
 ALTER DATABASE dongtian CHARACTER SET utf8COLLATE utf8_general_ci;
 flush privileges;刷新数据库 
 
 GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY'dongtian' WITH GRANT OPTION;
 
 创建与删除数据库空间
 mysqladmin -uroot -p create TUTORIALS
 mysqladmin -u root -p drop TUTORIALS
 
mysql 数据库的备份与还原例如一个数据库test
mysqldump -u root -p --database test >test.sql
mysql -u root -p ec_school< ec_school.sql

mysql -u root -pdongtian -e "show databases;"| sed '1,2d'

mysql之触发器trigger
触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete)3.触发时间(after/before) 4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before insert/update/delete on 表名
for each row  #这句话在mysql是固定的
begin
sql语句;
end;

after是先完成数据的增删改,再触发,触发的语句晚于监视的增删改操作,无法影响前面的增删改动作;也就是说先插入订单记录,再更新商品的数量;
before是先完成触发,再增删改,触发的语句先于监视的增删改,我们就有机会判断,修改即将发生的操作;

当新增一条订单记录时,判断订单的商品数量,如果数量大于10,就默认改为10
create trigger tg6
before insert on o
for each row
begin
  if new.much > 10 then
    set new.much = 10;
  end if;
  update g set num = num - new.much where id = new.gid;
end$
insert into o(gid,much) valus(1,20)$

示例:

mysql> delimiter //
mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account
    -> FOREACH ROW
    ->BEGIN
   ->    IF NEW.amount < 0 THEN
   ->        SET NEW.amount = 0;
   ->    ELSEIF NEW.amount > 100 THEN
   ->        SET NEW.amount = 100;
   ->    END IF;
    ->END;//
mysql> delimiter ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值