sqlmysql基础知识(代码片段)

author author     2023-01-08     375

关键词:

-- Следующий запрос MySQL обновляет значения поля price, увеличивая на 10% цены на товары с кодом 3 в таблице m_income:
UPDATE m_income 
SET price = price*1.1
WHERE product_id=3;

-- Следующий запрос MySQL на обновление увеличивает в таблице m_income на 22 единицы количество всех товаров, названия которых начинаются со слова "Масло":
UPDATE m_income 
SET amount = amount+22
WHERE product_id IN (SELECT id FROM m_product WHERE title LIKE "Масло%");

-- Следующий запрос MySQL в таблице m_outcome снижает на 2 процента цены на все товары, производителем которых является ООО "Сладкое":
UPDATE m_outcome SET price = price*0.98
WHERE product_id IN 
(SELECT a.id FROM m_product a INNER JOIN m_supplier b 
ON a.supplier_id=b.id WHERE b.title='ООО "Сладкое"');

-- Следующий запрос MySQL на изменение в таблице m_income увеличивает:
-- на 10% цены товаров категории 1;
-- на 20% цены товаров категории 2;
-- на 17% цены товаров категории 3.
-- Цены на товары других категорий остаются без изменений:
UPDATE m_income a 
INNER JOIN m_product b ON a.product_id = b.id 
INNER JOIN m_category c ON b.ctgry_id = c.id 
SET price = CASE c.id 
WHEN 1 THEN price * 1.1 
WHEN 2 THEN price * 1.2 
WHEN 3 THEN price * 1.17 
ELSE price END;
-- For basic information on table columns, use DESC tablename:
DESC example;

-- Show info about table
SHOW CREATE TABLE example;

-- Создание таблицы со внешними ключами:
CREATE TABLE invoice (
  inv_id  INT AUTO_INCREMENT NOT NULL,
  usr_id  INT NOT NULL,
  prod_id  INT(11) NOT NULL,
  quantity INT NOT NULL,
  PRIMARY KEY(inv_id),
  FOREIGN KEY (usr_id) REFERENCES usr(usr_id)
    ON UPDATE CASCADE
    ON DELETE RESTRICT,
  FOREIGN KEY (prod_id) REFERENCES product(prod_id)
    ON UPDATE CASCADE
    ON DELETE RESTRICT
) ENGINE=InnoDB CHARACTER SET=UTF8;

-- Creating a table with auto_increment:
CREATE TABLE example_autoincrement (
 id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 data VARCHAR(100)
);

INSERT INTO example_autoincrement (data)
  VALUES ('Hello world');

-- Creating a table with the current timestamp:
CREATE TABLE example_timestamp (
 id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 data VARCHAR(100),
 cur_timestamp TIMESTAMP(8)
);

INSERT INTO example_timestamp (data)
  VALUES ('The time of creation is:');
  
UPDATE example_timestamp 
  SET data='The current timestamp is: ' 
WHERE id=1;

-- Creating a table with TIMESTAMP DEFAULT NOW()
CREATE TABLE example_default_now (
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  data VARCHAR(100),
  created TIMESTAMP DEFAULT NOW()
);
-- Переименовать столбец и поменять ему тип:
ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;

-- Однако начиная с версии MySQL 3.22.16a можно также использовать выражение MODIFY для изменения типа столбца без переименовывания его:
ALTER TABLE t1 MODIFY b BIGINT NOT NULL;

-- Переименовать таблицу:
ALTER TABLE t1 RENAME t2;

-- Для того чтобы изменить тип столбца с INTEGER на TINYINT NOT NULL (оставляя имя прежним) и изменить тип столбца b с CHAR(10) на CHAR(20) с переименованием его с b на c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

-- Для того чтобы добавить новый столбец TIMESTAMP с именем d:
ALTER TABLE t2 ADD d TIMESTAMP;

-- Для того чтобы добавить индекс к столбцу d и сделать столбец a первичным ключом:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

-- Для того чтобы удалить столбец c:
ALTER TABLE t2 DROP COLUMN c;

-- Для того чтобы добавить новый числовой столбец AUTO_INCREMENT с именем c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (c);

sqlmysql(代码片段)

查看详情

sqlmysql(代码片段)

查看详情

sqlmysql(代码片段)

查看详情

sqlmysql转储(代码片段)

查看详情

sqlmysql命令(代码片段)

查看详情

sqlmysql示例(代码片段)

查看详情

sqlmysql的(代码片段)

查看详情

sqlmysql的(代码片段)

查看详情

sqlmysql日期(代码片段)

查看详情

sqlmysql的(代码片段)

查看详情

sqlmysql的(代码片段)

查看详情

sqlmysql表(代码片段)

查看详情

sqlmysql的(代码片段)

查看详情

sqlmysql配置(代码片段)

查看详情

sqlmysql的(代码片段)

查看详情

sqlmysql命令(代码片段)

查看详情

sqlmysql函数(代码片段)

查看详情

sqlmysql远程连接(代码片段)

查看详情